文档章节

springMvc 的参数验证 BindingResult result 的使用

文文1
 文文1
发布于 2018/12/07 09:54
字数 681
阅读 9
收藏 1

ttp://blog.sina.com.cn/s/blog_6829be5c0101alxh.html 非常详细的一篇讲解 并且值得深入探讨

http://bbs.csdn.NET/topics/360254599  简单明了

 

1. 首先导入依赖包bean-validator.jar

2.在实体类上面写一些相关的验证信息:可以搜索更多的一些验证方式,这只是一部分

可以参考:点击打开链接http://blog.csdn.Net/caihaijiang/article/details/7463514

private String username;  
    private String password;  
    private String nickname;  
    private String email;  
      
    public User() {  
    }  
  
    @NotEmpty(message="用户名不能为空")  
    public String getUsername() {  
        return username;  
    }  
  
    public void setUsername(String username) {  
        this.username = username;  
    }  
  
    @Size(min=1,max=10,message="密码的长度应该在1和10之间")  
    public String getPassword() {  
        return password;  
    }  
  
    public void setPassword(String password) {  
        this.password = password;  
    }  
  
    public String getNickname() {  
        return nickname;  
    }  
  
    public void setNickname(String nickname) {  
        this.nickname = nickname;  
    }  
  
    @Email(message="邮箱的格式不正确")  
    public String getEmail() {  
        return email;  
    }  
  
    public void setEmail(String email) {  
        this.email = email;  
    }  

2、后台controller处理

@RequestMapping("save")  
public String save( @Valid User user,BindingResult result) {  
    //  
    if(result.hasErrors()){  
        List<ObjectError> ls=result.getAllErrors();  
        for (int i = 0; i < ls.size(); i++) {  
             System.out.println("error:"+ls.get(i));  
        }  
    }  
    return "adduser";  
}  

1、参数集合实体

package com.yzf.cloud.funds.model.vo;
 
import java.io.Serializable;
import java.util.List;
 
import javax.validation.Valid;
 
import org.hibernate.validator.constraints.NotEmpty;
 
public class CashJournalsVo implements Serializable{
 
    private static final long serialVersionUID = 1L;
    
    /**
     * 账套UID
     */
    @NotEmpty
    private String accSetUid;
 
    /**
     * 账期
     */
    @NotEmpty
    private String fiscalPeriod;
 
    /**
     * 流水号
     */
    @NotEmpty
    private String flowSeq;
    
    /**
     * 现金明细数据集合
     */
    @Valid
    private List<CashJournalVO> cashJournalVOs;
 
    public String getAccSetUid() {
        return accSetUid;
    }
 
    public void setAccSetUid(String accSetUid) {
        this.accSetUid = accSetUid;
    }
 
    public String getFiscalPeriod() {
        return fiscalPeriod;
    }
 
    public void setFiscalPeriod(String fiscalPeriod) {
        this.fiscalPeriod = fiscalPeriod;
    }
 
    public String getFlowSeq() {
        return flowSeq;
    }
 
    public void setFlowSeq(String flowSeq) {
        this.flowSeq = flowSeq;
    }
 
    public List<CashJournalVO> getCashJournalVOs() {
        return cashJournalVOs;
    }
 
    public void setCashJournalVOs(List<CashJournalVO> cashJournalVOs) {
        this.cashJournalVOs = cashJournalVOs;
    }
 
 
}


2、参数实体

package com.yzf.cloud.funds.model.vo;
 
import java.io.Serializable;
import java.math.BigInteger;
 
import org.hibernate.validator.constraints.NotEmpty;
 
/**
 * 现金日记明细表
 * 
 * @author win 10
 *
 */
public class CashJournalVO implements Serializable {
    private static final long serialVersionUID = 1L;
    // 日记账表id
    private String id;
    // 日期
    @NotEmpty
    private String tradeDate;
    // 业务类型
    private String busitype;
    // 业务类型Uid
    @NotEmpty
    private String busitypeUid;
    // 往来单位
    private String dealings;
    // 业务主数据Uid
    @NotEmpty
    private String dealingsUid;
    // 收入金额
    private BigInteger incomeAmount;
    // 支出金额
    private BigInteger expenseAmount;
    // 备注
    @NotEmpty
    private String remark;
    // 主数据Uid
    @NotEmpty
    private String mdataUid;
 
    public String getId() {
        return id;
    }
 
    public void setId(String id) {
        this.id = id;
    }
 
    public String getTradeDate() {
        return tradeDate;
    }
 
    public void setTradeDate(String tradeDate) {
        this.tradeDate = tradeDate;
    }
 
    public String getBusitype() {
        return busitype;
    }
 
    public void setBusitype(String busitype) {
        this.busitype = busitype;
    }
 
    public String getBusitypeUid() {
        return busitypeUid;
    }
 
    public void setBusitypeUid(String busitypeUid) {
        this.busitypeUid = busitypeUid;
    }
 
    public String getDealings() {
        return dealings;
    }
 
    public void setDealings(String dealings) {
        this.dealings = dealings;
    }
 
    public String getDealingsUid() {
        return dealingsUid;
    }
 
    public void setDealingsUid(String dealingsUid) {
        this.dealingsUid = dealingsUid;
    }
 
    public BigInteger getIncomeAmount() {
        return incomeAmount;
    }
 
    public void setIncomeAmount(BigInteger incomeAmount) {
        this.incomeAmount = incomeAmount;
    }
 
    public BigInteger getExpenseAmount() {
        return expenseAmount;
    }
 
    public void setExpenseAmount(BigInteger expenseAmount) {
        this.expenseAmount = expenseAmount;
    }
 
    public String getRemark() {
        return remark;
    }
 
    public void setRemark(String remark) {
        this.remark = remark;
    }
 
    public String getMdataUid() {
        return mdataUid;
    }
 
    public void setMdataUid(String mdataUid) {
        this.mdataUid = mdataUid;
    }
}

3、controer写法
    

@PostMapping("/updateCashJournal")
public ResultJson updateCashJournal(@RequestHeader("tenantUid") String tenantUid,
    @Valid @RequestBody CashJournalsVo cashJournalsVo, BindingResult bindingResult) {
    if (bindingResult.hasErrors()) {
        logger.info("传递参数有误:" + new JSONObject(bindingResult.getFieldError()).toString());
        return buildResultJson(FAIL, "编辑失败", "编辑现金日记账");
    }
    return cashJournalAccountService.updateCashJournal(tenantUid, cashJournalsVo, personName);
}

 

本文转载自:https://blog.csdn.net/qiunian144084/article/details/78082380

共有 人打赏支持
文文1
粉丝 23
博文 391
码字总数 124158
作品 0
长沙
程序员
私信 提问
Spring MVC的@RequestMapping注解的方法签名异常

病理特征:Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature 堆栈信息:忘了^_^... 自从使用Spring框架以后,笔者再也没有用......

李长春
2011/09/15
0
1
springMVC 高级2 之 valadation

1 validation Spring3支持JSR-303验证框架,JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,官方参考实现是Hibernate Validator(与Hibernate ORM 没有关系),JSR 303 用于对J...

龙之天空
2015/11/16
0
0
Spring框架 之@Valid注解的使用(嵌套类型的效验)

@Valid注解可以实现数据的验证,你可以定义实体,在实体的属性上添加校验规则,而在API接收数据时添加@valid关键字,这时你的实体将会开启一个校验的功能。 @Valid 注解类型的使用: @Null 限...

沉淀人生
2018/05/29
0
0
使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆
2018/06/22
0
0
让Spring Controller 的方法基本数据类型参数支持Bean Validation

让Spring Controller 的方法基本数据类型参数支持Bean Validation Spring中的Bean Validation 我们知道Spring MVC层是默认可以支持Bean Validation的,尝试使用了一下感觉很不方便,只支持对...

ForEleven
2014/04/18
0
32

没有更多内容

加载失败,请刷新页面

加载更多

Hanlp中N最短路径分词详细介绍

N-最短路径 是中科院分词工具NLPIR进行分词用到的一个重要算法,张华平、刘群老师在论文《基于N-最短路径方法的中文词语粗分模型》中做了比较详细的介绍。该算法算法基本思想很简单,就是给定...

左手的倒影
16分钟前
1
0
es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?

面试题 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊? 面试官心理分析 这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好...

架构师springboot
17分钟前
3
0
php面试题常见面试题

又是跳槽季,跳槽就有面试,面试难免会问一些理论问题,前面面试了几家,做了一些面试题,记住了一部分,整理了一下: 1.cookie 和session区别 session存在服务器,cookie存在浏览器;sessi...

后盾风云
23分钟前
2
0
华为Mate X显示适配指导来了!带你完美适配折叠屏

华为Mate X一经发布便引发了世界级的关注,除了史无前例的交互体验外,作为一款可以变形的手机,它还拥有多种不同的形态:展开时是8英寸全面屏,折叠后又变身为6.6英寸和6.38英寸两块屏幕。 ...

安卓绿色联盟
34分钟前
1
0
安装redis

#个人习惯或要求安装目录cd /usr/local/mkdir rediscd redis#下载rediswget http://download.redis.io/releases/redis-5.0-rc4.tar.gz#解压tar -zxvf redis-5.0-rc4.tar.gz ...

其实oscer的名字可以起这么长的你造吗
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部