SSM第三天

来源:互联网 发布:四川麻将源码 编辑:程序博客网 时间:2024/06/10 12:20
今天学习内容:

  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>

 

 

 

 

    

 

     

原创粉丝点击