>[info] 当插入与修改数据时,lcfms支持使用hibernate-validator来对pojo做验证。
>
> 首先需要为你的pojo作验证注解:
```
package cn.lcfms.app.admin.bean;
import javax.validation.constraints.Min;
import org.hibernate.validator.constraints.NotBlank;
public class DemoBean {
private long id;
@NotBlank
private String s;
@Min(18)
private int i;
private String t;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public String getT() {
return t;
}
public void setT(String t) {
this.t = t;
}
}
```
>[info] 你可以使用下面三种验证方法:
## 1、利用BindingResult在控制器注入阶段使用验证
```
@RequestMapping("/index")
public String index(@Valid DemoBean bean,BindingResult result) {
StringBuilder sb = new StringBuilder();
if (result.hasErrors()){
List<FieldError> allErrors = result.getFieldErrors();
allErrors.forEach((FieldError error)->{
//错误字段=>错误信息
sb.append(error.getField()+"=>"+error.getDefaultMessage()+"\n");
});
}
System.out.println(sb);
return "index/index";
}
```
## 2、使用Validator对象在控制器中进行验证
```
package cn.lcfms.app.index.controller;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import cn.lcfms.app.admin.bean.DemoBean;
import cn.lcfms.app.admin.controller.AdminBaseController;
@Controller("index.IndexController")
@RequestMapping("/index/index")
public class IndexController extends AdminBaseController{
@Autowired
private Validator valid;//利用Validator标准接口注入对象
@RequestMapping("/index")
public String index(DemoBean bean) {
Set<ConstraintViolation<DemoBean>> set = valid.validate(bean);
if(set.size()>0) {
StringBuilder sb = new StringBuilder();
for (ConstraintViolation<DemoBean> vio : set) {
//错误字段=>错误信息
sb.append(vio.getPropertyPath()+"=>"+vio.getMessage()+"\n");
}
System.out.println(sb);
}
return "index/index";
}
}
```
## 3、使用BaseService在插入或修改中自动验证
```
public void t12() {
BaseService service = Application.getService("demo");
DemoBean demo=new DemoBean();
demo.setI(5);
demo.setS("aaa");
demo.setT("n");
service.insert(demo,"t");
String error;
if(null!=(error=service.getError())) {
//自动验证后,如果不通过,错误信息将保存到error中
System.out.println(error);
}else {
System.out.println("插入成功");
}
}
```
- 系统入门
- 系统简介
- 目录结构
- 系统配置
- 应用
- 应用
- 控制器
- 模板
- 自定义标签
- 用户信息
- 调试
- 调试模式
- 使用Vardump打印
- 访问数据库
- 数据库配置
- Dao模式
- BaseService模式
- 获取对象
- 插入
- 修改
- 删除
- 查询
- where方法
- column方法
- join方法
- 其他查询方法
- 操作集合
- sql方法
- 查询回调接口
- 使用别名
- 后台验证
- 同步表结构
- 使用事务
- 数据分页
- 通用视图模板
- CommonPageView
- CommonPageLayer
- CommonTreeView
- CommonEditView
- CommonEditLayer
- 日志管理
- 后台菜单
- 权限管理
- CMS
- CMS核心
- CMS仿站工具
- CMS采集工具
- websocket
- UI自动生成器
- 缓存
- 自定义缓存
- 生成静态页面
- 表单
- 上传文件
- 前端验证