我遇到了Spring form:checkbox
标记的问题。
我目前有一个JSP页面,其form:checkbox
标记绑定到Java boolean
字段。当我在复选框中打勾并提交表单时,值为false
。
这是我的JSP上的复选框:
<form:checkbox id="field_termsandconditions" path="agreeTermsAndConditions" />
我的GET
控制器:
@RequestMapping(value = "/page1.htm", method = RequestMethod.GET)
public String getPage(HttpServletRequest request, ModelMap model) {
model.addAttribute("MyObject", new MyObject());
return getURL(request);
}
我的POST
控制器:
@RequestMapping(value = "/page1.htm", method = RequestMethod.POST)
public String processPage(HttpServletRequest request,
HttpServletResponse response,
ModelMap model,
MyObject myObject,
BindingResult bindingResult) {
System.out.println(myObject.isAgreeTermsAndConditions);
}
myObject.isAgreeTermsAndConditions
在遇到false
控制器时始终为POST
!
有什么想法吗?
答案 0 :(得分:0)
这可能有点迟了,但也许会对其他人有所帮助。
当您自动生成布尔值的getter和setter方法时,通常会在没有'is'前缀的情况下生成它。
例如,在上述情况下,为'isAgreeTermsAndConditions'属性生成的设置器可能如下:'setAgreeTermsAndConditions()',请注意该方法中没有'is'前缀。吸气剂也是如此。
由于使用了属性获取器和设置器名称来查找并绑定到模型属性,因此如果属性名称和获取器/设置器不匹配,则该复选框可能不会显示在UI上或无法正常工作。
确保属性“ isAgreeTermsAndConditions”具有以下getter / setter方法名称:getIsAgreeTermsAndConditions()/ setIsAgreeTermsAndConditions(...)