Java Spring MVC<;形式:错误/>;标签不';如果找不到错误消息,我会怎么做?
我在index.jsp文件中使用以下内容:Java Spring MVC<;形式:错误/>;标签不';如果找不到错误消息,我会怎么做?,java,jsp,annotations,Java,Jsp,Annotations,我在index.jsp文件中使用以下内容: <form:label path="userName">User name</form><form:input path="userName"/><form:errors path="userName" cssClass="error"/> 当我将所有字段留空并按下“保存用户”按钮时,我收到一个http 500错误,并显示以下消息: org.springframework.web.util.Nested
<form:label path="userName">User name</form><form:input path="userName"/><form:errors path="userName" cssClass="error"/>
当我将所有字段留空并按下“保存用户”按钮时,我收到一个http 500错误,并显示以下消息:
org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为javax.validation.ConstraintViolationException:在组[javax.validation.groups.Default]的持久化时间内,类[be.fgov.economie.Spring3Hibernate4.entity.User]的验证失败
约束冲突列表:[
ConstraintViolationImpl{interpolatedMessage='userName不能为空',propertyPath=userName,rootBeanClass=class be.fgov.economie.Spring3Hibernate4.entity.User,messageTemplate='userName不能为空。}
]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:932)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:827)
javaservlet.http.HttpServlet.service(HttpServlet.java:641)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:801)
javaservlet.http.HttpServlet.service(HttpServlet.java:722)
所以我看到它是有效的,但是我没有得到带有form:errors标签的消息。我做错了什么,还是忘了什么
Thx从stacktrace判断,它在保存/持久化到数据库时失败,而不是在提交表单时失败。假设您使用的是SpringMVC,您应该使用
@Valid
注释方法参数。是的,这是我忘记的。我刚刚在我的控制器类中添加了以下内容:公共字符串saveUser(@Valid User User,BindingResult,Model Model){if(result.hasErrors()){return“index”;}…}现在可以正常工作了,thx。
@Entity
@Table(name="users")
public class User {
@Column(name = "username")
@NotNull(message = "User name is required.")
@NotBlank(message = "User name can't be left blank.")
private String userName;
...