Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC<;形式:错误/>;标签不';如果找不到错误消息,我会怎么做?_Java_Jsp_Annotations - Fatal编程技术网

Java Spring MVC<;形式:错误/>;标签不';如果找不到错误消息,我会怎么做?

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

我在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.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;

...