Я пытаюсь представить записи в checkbox
как массив объектов.
Это оригинальный объект модели.
Language.java
public class Language {
private long langid;
private String language;
//getters setters
--
}
Это объект, который использует language
в качестве поля массива.
Customer.java
public class Customer {
private long id;
private String firstname;
private String secondname;
private int age;
private String address;
private Country country;
private Language[] language;
public Customer() {
}
public Customer(String firstname, String secondname, int age, String
address, Country country, Language[] language) {
this.firstname = firstname;
this.secondname = secondname;
this.age = age;
this.address = address;
this.country = country;
this.language = language;
}
// other getter setters
...
public Language[] getLanguage() {
return language;
}
public void setLanguage(Language[] language) {
this.language = language;
}
}
Это класс контроллера, который возвращает запрос.
FormController.java
@Controller
@Transactional
@RequestMapping("/form")
public class FormController {
@Autowired
CustomerDAO customerDAO;
@Autowired
LanguageDAO langaugeDAO;
@RequestMapping("/customer")
public void addCustomer() {
}
@RequestMapping(value = "/customer", method = RequestMethod.POST)
public String prosCustomer(Model model, @ModelAttribute() Customer
customer) {
int result = customerDAO.saveCustomer(customer);
if (result > 0) {
int result2 = langaugeDAO.saveCustLang(customer.getLanguage(), customer.getId());
if (result2 > 0) {
model.addAttribute("msg", customer.getFirstname() + " successfully created");
} else {
model.addAttribute("msg", "customer registration failed.");
}
} else {
model.addAttribute("msg", "customer registration failed.");
}
return "form/home";
}
@ModelAttribute("defaultcustomer")
public Customer defaultCustomer() {
Customer c = new Customer();
return c;
}
@ModelAttribute("languages")
public List<Language> languageList() {
List<Language> list = new ArrayList<>();
list = langaugeDAO.languageList();
return list;
}
}
И, наконец, это представление.
customer.jsp
<form:form method="post" modelAttribute="defaultcustomer">
name : <form:input path="firstname"/>
<br/>
<form:hidden path="secondname" />
Age <form:input path="age"/>
<br/>
Address <form:textarea path="address"/>
<br/>
Country
<form:select path="country.countryid">
<c:forEach items="${countries}" var="country">
<form:option value="${country.countryid}">${country.country}</form:option>
</c:forEach>
</form:select>
<br/>
Languages:
<c:forEach items="${languages}" var="language">
${language.language} : <form:checkbox value="${language.langid}"
path="language" />
</c:forEach>
<br/>
<input type="submit" value="submit"/>
</form:form>
При поиске customer.jsp через http://localhost:8080/mvcquick/form/customer
все работает.
Но почему-то, когда я отправляю форму, я получаю 404
ошибку.
И я не могу понять, в чем здесь проблема.
Пожалуйста помоги.
Спасибо.