springMvc 的参数验证 BindingResult result 的使用

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

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;  
    } 

  后台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";  
    }  

  参数集合实体

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;
	}
 
 
}

  参数实体

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;
	}
}

  controller写法

@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://www.cnblogs.com/vincentmax/p/14414825.html