我的应用程序有一个带强制复选框的注册页面。如果在没有勾选复选框的情况下提交表单,我希望在尝试提交表单时显示错误消息。
在我的控制器中,我有:
if(req.getParameter("tcCheck")==null)
result.rejectValue("tcCheck","Check.tc", "Need to accept terms and conditions");
我的jsp:
<form:form modelAttribute="user" method="post">
...
<form:errors path=tcCheck/>
...
</form:form>
在运行时,我收到此错误:
错误500:org.springframework.beans.NotReadablePropertyException: bean类的属性'tcCheck'无效 [com.domgen.recupl.domain.User]:Bean属性'tcCheck'不是 可读或具有无效的getter方法:是否返回类型 getter匹配setter的参数类型?
用户域对象没有tcCheck作为其实例变量之一,当然它不应该放在User bean中。
我想知道如何在不编辑User bean的情况下显示我的错误消息? 感谢。
A
答案 0 :(得分:0)
如何使用errors.rejectValue?有关示例,请参阅here。
答案 1 :(得分:0)
在您的控制器中:使用addError方法
if(req.getParameter("tcCheck")==null)
result.addError(new ObjectError("tcCheck", "error message"));
在你的jsp:use元素属性而不是路径
<form:form modelAttribute="user" method="post">
...
<form:errors element="tcCheck"/>
...
</form:form>
帮助!?
答案 2 :(得分:0)
要使用这样的表单错误,您必须在表单支持对象上使用与表单字段匹配的getter。所以,如果你想使用
<form:errors path="tcCheck"/>
您的用户对象或用户对象的子对象必须有方法getTcCheck()。即。
<form:errors path="subObject.tcCheck"/>
在这种情况下,您将使用rejectValue(“subObject.tcCheck”,...