频道栏目
首页 > 资讯 > 其他综合 > 正文

ssm+shiro框架搭建笔记(7)

17-03-04        来源:[db:作者]  
收藏   我要投稿

 

配置validationMessage校验

(1).添加依赖包。

pom文件添加以下配置信息:

        
    
        5.1.2.Final
        org.hibernate
        hibernate-validator
    
    
        1.1.0.Final
        javax.validation
        validation-api
    
    
        org.slf4j
        slf4j-api
        1.7.22
    
    

(2).配置spring-mvc.xml文件。

文件添加以下配置信息:

   


    
   
    
   



    
     
           
            classpath:validation/sysValidationMessages
          
    
   
   
   
   

(3).添加资源文件:sysValidationMessages.properties,然后填写校验提示信息。

(4).创建校验分组接口类,以添加为例子。

        package com.lcl.validator;
        /**
        * 
        * @ClassName: Add
        * @Description: 添加校验组
        * @author liuchaolong
        * @date 2017年1月13日 下午2:30:04
        *
         */
        public interface Add {

        }

(5).测试代码。

 为实体类添加校验,此处省略get、set方法
 package com.lcl.sys.model;
import java.util.Date;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotBlank;
import com.lcl.validator.Add;
/**
 * 权限实体类 
 * @author lcl
 *
 */
public class PermissionInfo {
    private String id;
    private String pid;
    @NotBlank(message = "{PermissionInfo.name.NotBlank}", groups = {Add.class})
    private String name;
    @NotBlank(message = "{PermissionInfo.url.NotBlank}", groups = {Add.class})
    private String url;
    @NotBlank(message = "{PermissionInfo.unique.NotBlank}", groups = {Add.class})
    private String unique;
    @NotBlank(message = "{PermissionInfo.type.NotBlank}", groups = {Add.class})
    private String type;    
    private String icon;
    @NotBlank(message = "{PermissionInfo.isVisiable.NotBlank}", groups = {Add.class})
    private String isVisiable;
    @NotNull(message = "{PermissionInfo.sortNum.NotNull}", groups = {Add.class})
    @DecimalMin(value = "0", message = "{PermissionInfo.sortNum.DecimalMin}", groups = {Add.class})
    private Integer sortNum;
    private String creater;
    private Date createTime;
    private String updater;
    private Date updateTime;
    private String pids;    
    private boolean isParent;

Controller类使用添加权限方法的时候:

    /**
     * 
    * @Title: insertPermission 
    * @Description: 添加权限 
    * @param @param permissionInfo
    * @return int    返回类型 
    * @throws
     */
    @RequestMapping("insertPermission")
    @ResponseBody
    public Map insertPermission(@Validated({Add.class}) PermissionInfo permissionInfo, BindingResult result){
        Map map = new HashMap();
        map = this.getValidatedInfo(result);
        //校验表单          if(MessageConstant.RETURN_VALIDATE_MSG.equals(map.get("msg")))return map;           
        UserInfo userInfo  = this.getUserInfo();
        Map oMap = new HashMap();
        int i = sysService.insertPermission(permissionInfo,userInfo);
        if(i==0){
            oMap.put("objectInfo", "添加失败");
            oMap.put("success", "error");
        }else{
            oMap.put("objectInfo", "添加成功");
            oMap.put("success", "success");
        }
        return oMap;
    }

注:@Validated({Add.class}) 表示分组,此时表示add组,校验会自动调用实体类Add.class的校验信息;this.getValidatedInfo(result)自己封装的方法在基类中实现。RETURN_VALIDATE_MSG常量表示验证错误,信息不合法。

getValidatedInfo方法实现如下:

    /**
 * 
* @Title: doValidated 
* @Description:获取提交表单校验信息 
* @return Map 返回类型 
* @throws
 */
protected Map getValidatedInfo(BindingResult result) {
    Map map = new HashMap();
    Map errorMap = new HashMap();
    String msg = MessageConstant.RETURN_SUCCESS_MSG;
    if ( result.hasErrors() ) {  
        List errors = result.getFieldErrors();
        for (FieldError fieldError : errors) {
            if (!errorMap.containsKey(fieldError.getField())) {
                errorMap.put(fieldError.getField(), fieldError.getDefaultMessage());
            }
        }
        msg = MessageConstant.RETURN_VALIDATE_MSG;
        map.put("errorinfo", errorMap);
        map.put("msg", msg);
        map.put("success", "error");
        return map;
    }
    map.put("msg", msg);
    return map;
}
相关TAG标签
上一篇:PHP几种排序算法的比较
下一篇:分布式服务框架之服务路由
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站