получая ошибку 400 для флажков весной mvc - PullRequest
0 голосов
/ 08 января 2019


Я пытаюсь представить записи в 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 все работает.

customer.jsp view

Но почему-то, когда я отправляю форму, я получаю 404 ошибку.

404 error

И я не могу понять, в чем здесь проблема. Пожалуйста помоги. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...