Spring数据校验
1.在servelet中添加校验引用
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/messages" /> <property name="cacheSeconds" value="0" /> </bean>
表示在"/WEB-INF/messages"目录下存储校验信息
2.在实体类中设置校验
/**item_name */
@Length(min = 1, max = 30)
private String item_name;//对长度校验
/**price */
@NotNull//非空校验
@Min(1)//最小值
@Max(9999999999L)//最大值
private Long price;
/**genre_id_1 */
@Pattern(regexp = "([1-9]{1,6})")//正则表达式
private String genre_id_1;
3.编写jsp文件
添加标签引用:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
添加校验:
<form:form modelAttribute="itemForm" action="/minimall/itemRegister.do" method="post">
<table border="0">
<tr>
<td>商品名</td>
<td>
<input type="text" name="item_name" value="${itemForm.item_name }" >
<form:errors path="item_name" />
</td>
</tr>
</table>
</form:form>
4.编写校验信息messages.properties
typeMismatch.itemForm.price=数字を入力してください
NotNull.itemForm.price=販売価格を入力してください
Length.itemForm.item_name=商品名の長さは1~30の間にあります
Min.itemForm.price=販売価格は1より大きいです
Max.itemForm.price=販売価格は9999999999より小きいです
Pattern.itemForm.genre_id_4=全部分類を選択してください
备注:Length与2中对应,itemForm与3中对应,item_name与2中对应
5.编写controller层
@RequestMapping(value = "/itemRegister.do", method = RequestMethod.POST)
public ModelAndView doItemRegister(HttpServletRequest request, @Valid @ModelAttribute("itemForm") ItemForm itemForm, BindingResult bindingResult) {
ItemForm sitemForm = this.sanitizing(itemForm);
if (bindingResult.hasErrors()) {
return new ModelAndView("/item_info_input", "itemForm", itemForm);
} else {
if (itemService.register(sitemForm)) {
return new ModelAndView("/item_info_confirm", "itemForm", itemForm);
} else {
return new ModelAndView("/registerFailed");
}
}
}