dimanche 29 novembre 2015

Spring MVC checkboxes HTTP Status 400 The request sent by the client was syntactically incorrect

I have this simple form with 2 checkboxes and a submit button. When I submit the form, I get this 'HTTP Status 400 The request sent by the client was syntactically incorrect.' error. Someone please help!

This is my POJO:

public class Menu

{

private String day;
private String name;
private int price;


public Menu(){
}


public Menu(String day, String name, int price) {
    this.day = day;
    this.name = name;
    this.price = price;
}
public int getPrice() {
    return price;
}
public void setPrice(int price) {
    this.price = price;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getDay() {
    return day;
}
public void setDay(String l) {
    this.day = l;
}

@Override
public int hashCode() {
    int hash = 3;
    hash = 7 * hash + this.day.hashCode();
    hash = 7 * hash + this.name.hashCode();
    return hash;
}

@Override
public boolean equals(Object object) {
    boolean result = false;
    System.out.println("ARE YOU EVER CALLLED HOW MANY TIMES");
    if (object == null || object.getClass() != getClass()) {
        result = false;
    } else {
        Menu sc = (Menu) object;
        if (this.day == sc.getDay() && this.name == sc.getName()
                && this.price == sc.getPrice()) {
            result = true;
        }
    }
    return result;
}

This is my Order class:

public class Order {

private List<Menu> menus = new ArrayList<Menu>();

public Order(){

}

public Order(ArrayList<Menu> menus){
    this.menus =  menus;        
}


public List<Menu> getMenus() {
    return menus;
}

public void setMenus(ArrayList<Menu> menus) {
    this.menus = menus;
}

}

And this is my controller:

@Controller
public class RestaurantController {
@RequestMapping(value = "/menu", method = RequestMethod.GET)
public String menuPage(Model model)
{           
    Order o = new Order();
    ArrayList<Menu> m = new ArrayList<Menu>();
    m.add(new Menu("Sunday", "Phir Aloo", 12));
    m.add(new Menu("Sunday", "Phir Cholay", 9));
    model.addAttribute("today", m);
    model.addAttribute("order", o);
    return "/menu";
}

@RequestMapping(value = "/confirm", method = RequestMethod.POST)
public String done(@ModelAttribute(value="order") Order order, Model model)
{           
    return "/confirm";
}

And this is my JSP:

<form:form modelAttribute="order" method="post" action="/res/confirm">  
    <c:forEach items="${today}" var="r">
        <form:checkbox path="menus" value="${r}" label="${r.name }    ${r.price }" />
    </c:forEach>
<input type="submit" value="Submit Data">

</form:form>

Now I just expect Class Order's property menus to be filled with selected checkboxes instead I get this error "The request sent by the client was syntactically incorrect. I have looked up every possible answer on this website but nothing seems to be solving the problem. Please help!




Aucun commentaire:

Enregistrer un commentaire