これが私が立ち往生している問題です。実際、いくつかのフィールドを検証するために必要なすべての機能を実装しましたが、それでも 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>
詳細を明確にするために、ここに何か他のものを入れる必要があるかどうかはわかりません...