前后台校验示例及讲解

本文介绍了如何在Java Web开发中结合Jquery Validation和Hibernate Validation进行前后台数据校验,提供了详细的示例代码,包括Controller、校验工具类、校验结果类和前端注册页面的实现,强调了用户体验和数据安全的重要性。
摘要由CSDN通过智能技术生成

在开发Java Web程序时,前后校验逻辑应该是必不可少的一部分。其中,前台校验更多地是从用户体验的角度出发,而后台校验更多地是从数据安全的角度出发。本博文基于Spring MVC写了一个前台后台结合校验的示例,不过没有使用Spring MVC自带的校验框架。示例前台使用Jquery Validation进行校验,后台使用Hibernate Validation进行校验,所以示例所需要的校验逻辑并不依赖于Spring MVC,只要引入相应的校验包,即可在任何Java Web环境中实现校验功能。(使用Spring MVC自带校验逻辑进行校验,改天有空再写个示例)

如果Jquery Validation使用不熟悉的话,可以查看我的Jquery Validation实用示例及讲解
如果Hibernate Validation使用不熟悉的话,可以查看我的Hibernate Validation使用示例及讲解

下面直接上示例代码:
一、主要依赖

   jquery.validate.js 

Xml代码   收藏代码
  1. <dependency>  
  2.             <groupId>org.hibernate</groupId>  
  3.             <artifactId>hibernate-validator</artifactId>  
  4.             <version>5.1.3.Final</version>  
  5.         </dependency>  

 

 二、后台Controller类

该类只是模拟注册功能,并有一个用户名是否存在判断逻辑,主要是为了体现前后台校验的用法,所以没写其它逻辑,实际情况肯定比这复杂得多。

Java代码   收藏代码
  1. /** 
  2.  * 注册控制器 
  3.  * @author wdmcygah 
  4.  * 
  5.  */  
  6. @Controller  
  7. @RequestMapping("/register")  
  8. public class RegisterController {  
  9.   
  10.     /** 
  11.      * 注册页面展示 
  12.      */  
  13.     @RequestMapping("/show")  
  14.     public String register(){  
  15.         return "/register/show";  
  16.     }  
  17.       
  18.     /** 
  19.      * 注册方法(主要为了演示使用Hibernate validation进行校验) 
  20.      */  
  21.     @RequestMapping(value="/create",method=RequestMethod.POST)  
  22.     public String doRegister(RegisterInfo info,Model model){  
  23.         //1、进行参数校验  
  24.         ValidationResult result = ValidationUtils.validateEntity(info);  
  25.         if( result.isHasErrors() ){  
  26.             model.addAttribute("errorMsg", result.getErrorMsg());  
  27.             return "/register/show";  
  28.         }  
  29.           
  30.         //2、注册逻辑——省略  
  31.         model.addAttribute("successFlag""1");  
  32.         return "/register/show";  
  33.     }  
  34.       
  35.     /** 
  36.      * 判断用户名是否存在 
  37.      * 详细描述: 
  38.      * 1、这里只作简单的演示,若名称以y开头则返回存在。实际运用中可能是查询数据库 
  39.      * 2、注意这里用到@ResponseBody注解,表示返回值不是视图名,直接将返回值绑定到response body中 
  40.      * @param name 
  41.      * @return 
  42.      */  
  43.     @RequestMapping(value="isNameExists",method=RequestMethod.POST)  
  44.     @ResponseBody  
  45.     public String isNameExists( String name ){  
  46.         if( StringUtils.isEmpty(name) ){  
  47.             return "false";  
  48.         }  
  49.         //只有以'y'开头的名字才是不存在的  
  50.         if( name.startsWith("y") ){  
  51.             return "true";  
  52.         }  
  53.         return "false";  
  54.     }  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值