弹簧。验证期间出错400

时间:2013-06-13 10:09:27

标签: java spring validation http-status-code-400

这是我遇到的一个问题。实际上,我实现了所有必需的功能,以便验证我的几个字段,但是我仍然得到400错误。我甚至将我所做的与Spring 3 for Professionals的例子进行了比较(获取他们的源代码);他们的例子完美无缺,但没有找到差异...... :(((也许是因为再次缺乏关注。

因此,这里有几个正确注释要验证的字段:

@NotEmpty(message="{validation.firstname.NotEmpty.message}") 
@Size(min=3, max=60, message="{validation.firstname.Size.message}")
@Column(name = "FirstName") 
public String getFirstName() { 
    return firstName;
}

@NotEmpty(message="{validation.lastname.NotEmpty.message}") 
@Size(min=1, max=40, message="{validation.lastname.Size.message}")
@Column(name = "LastName") 
public String getLastName() { 
    return lastName;
}

他们在messages.properties中的消息:

validation.firstname.NotEmpty.message=First name is required
validation.lastname.NotEmpty.message=Last name is required
validation.firstname.Size.message=First name must be between {min} and {max}
validation.lastname.Size.message=Last name must be between {min} and {max}

是的,messages.properties是可以访问的,因为我成功获得了与成功保存相关的其他消息。

以下是控制器内方法的相关部分:

public String update(@Valid Employee employee,...
public String create(@Valid Employee employee,...

即。我在那里放了必要的@Valid注释。

然后是我的servlet-context.xml的一部分:

<annotation-driven validator="validator"/>

<beans:bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> 
    <beans:property name="validationMessageSource" ref="messageSource"/> 
</beans:bean>

这是我的edit.jspx

的相关部分
<form:label path="firstName"> ${labelEmployeeFirstName}* </form:label> 

<form:input path="firstName" /> 
<div> <form:errors path="firstName" cssClass="error" /> </div> 
<p/> 

<form:label path="lastName">${labelEmployeeLastName}* </form:label> 

<form:input path="lastName" /> 
<div> <form:errors path="lastName" cssClass="error" /> </div> 

我不知道是否还需要其他东西来澄清更多......

1 个答案:

答案 0 :(得分:-1)

从控制器方法参数中删除@Valid注释。它还能给你400吗?