【问题标题】:Spring. Error 400 during validation春天。验证期间出现错误 400
【发布时间】:2013-06-09 16:20:48
【问题描述】:

这是我一直陷入的一个问题。实际上,我实现了所有必需的功能以验证我的几个字段,但是我仍然收到 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> 

我不知道是否需要在此处添加其他内容以澄清更多...

【问题讨论】:

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


【解决方案1】:

从控制器方法参数中移除@Valid 注解。它仍然给你 400 吗?

【讨论】:

  • 谢谢大家...问题已经消失了,不幸的是,我不知道是什么原因,我只是从头开始重新编写了一些代码,然后一切顺利。我无法复制它。
  • 在Controller方法中,参数Bindingresult应该在@Valid参数之后。否则,您将收到 400 错误。
  • @TigranBabajanyan 它在某处的spring文档中写过,我不知道更具体的内容。
猜你喜欢
  • 1970-01-01
  • 2019-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-26
  • 2020-07-11
  • 2017-09-07
  • 2022-12-15
相关资源
最近更新 更多