2012-01-27 82 views
2

無法將複選框綁定到@ModelAttribute。春天。將複選框綁定到ModelAttribute

HTML:

<form method="post"> 
    <p><input type="checkbox" name="list" value="v1" /></p> 
    <p><input type="checkbox" name="list" value="v2" /></p> 
    <p><input type="checkbox" name="list" value="v3" /></p> 
    <p><input type="checkbox" name="list" value="v4" /></p> 
    <p><input type="submit" value="Send" /></p> 
</form> 

的Java:

@RequestMapping(value = "/", method = RequestMethod.POST) 
public String index(@ModelAttribute("list")List<String> list, ModelMap model) 
{ 
    LoggerFactory.getLogger(this.getClass()).debug("list: " + list.size() + " " + list); 
    ... 
} 

經過v2和v3。在 「指數」 第一隻值:

列表:1 [V2]

如果我創建Spring標籤形式:

<form:form modelAttribute="testForm"> 
    <p><form:checkbox path="list" value="v1" /></p> 
    <p><form:checkbox path="list" value="v2" /></p> 
    <p><form:checkbox path="list" value="v3" /></p> 
    <p><form:checkbox path="list" value="v4" /></p> 
    <p><input type="submit" value="Отправить" /></p> 
</form:form> 

TestForm.java:

public class TestForm 
{ 
    private String[] list; 

    public String[] getList() 
    { 
     return list; 
    } 

    public void setList(String[] list) 
    { 
     this.list = list; 
    } 
} 

一切好!

如何將複選框綁定到@ModelAttribute而不使用spring標記?

+0

另外,我嘗試 <形式方法= 「POST」>

< input type =「checkbox」name =「list」v alue =「v4」/>

Alexander 2012-01-27 09:53:45

回答

2

檢查:public String index(@RequestParam("list") List<String> list, ModelMap model)