1.多种参数绑定的传入
**包装的pojo中的属性名要和传入参数的名字一致(当然包括类型
以上铺垫
a)数组 jsp中checkbox的name为items_id
传入参数即Integer[] items_id
b)list list包装进包装类,在Controller中传入包装类来得到List
页面显示
//实现List下标的递增
<c:foreach ..varStatus="status">
name="list[${status.index }].name"
c)map 同理map包装进包装类,名字相同
页面显示 name="map[key]" value="value"
2.校验
a)首先要加入valiadator有关jar
b)在SpringMVC配置校验器
(其中文档涉及校验乱码问题,需要在编码中加入以下代码
<property name="defaultEncoding" value="UTF-8"/>
c)在适配器映射器中配置校验器
<mvc:annotation-driven validator="validator"> </mvc:annotation-driven>
d)配置校验规则,在po属性上设置,这里直接写分组校验
@Size(min=,max=,message="{}",group={.class}
@NotNull(message="{}",group={.class})
@Empty(message="{}",group={.class})
**这里需要注意的是Null和Empty,对象就需要用Null,如今天我用来检验的Date
e)配置校验信息文件 CustomValidationMessages.properties
f)开始使用校验
1.Controller
先将校验的形参加上校验前缀
@Validated(value={.class}) xx xx(这里需要校验的对象),BindingResult bingdResult(这里是传入校验错误的信息)
如果有错误
if(bindingResult.hasErrors()){ List<ObjectError> errors=bindingResult.getAllErrors(); mandv.addObject("errors", errors); mandv.setViewName("editItems"); return mandv; }
a.getAllErrors方法得到所有错误
b.然后将错误作为param传给jsp
2.jsp页面回显错误消息
<c:if test="${ errors!=null}"> <c:forEach items="${errors}" var="error"> ${error.defaultMessage} </c:forEach> </c:if>