首页 > 编程语言 >java中,如何解决@NotBlank不生效的问题 @NotBlank @NotEmpty不生效,以及对象嵌套问题

java中,如何解决@NotBlank不生效的问题 @NotBlank @NotEmpty不生效,以及对象嵌套问题

时间:2022-10-07 22:33:54浏览次数:69  
标签:java String return 生效 import public append NotBlank

这篇文章主要介绍了如何解决@NotBlank不生效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。

1.解决@NotBlank不生效

最近做一个新项目,写新接口时发现@NotBlank @NotEmpty不生效,@NotNull则生效,令人费解。仔细检查一下2步骤

用法:

step1、Controller层接口入参处加@Validated注解(org.springframework.validation.annotation包的)

step2、入参对象的属性上加@NotBlank 或@NotEmpty 或 @NotNull --均来自于javax.validation.constraints包下, 三者区别可百度

 

属性循环嵌套问题,入参对象bean中 属性也为javabean对象,也希望子对象中的属性能够被校验

 

用法: 在子对象属性上面加@Valid 注解即可

WxCollectUserinfo.java
package com.joolun.system.domain;

import com.joolun.common.annotation.Excel;
import com.joolun.common.core.domain.BaseEntity;
import com.joolun.system.domain.vo.UserVo;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 门店信息对象 wx_collect_userinfo
 * 
 * @author qiaosl
 * @date 2022-10-03
 */
public class WxCollectUserinfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Excel(name = "主键")
    private Long wcuId;

    @NotNull(message = "userVo不能为空")
    @Valid
    private UserVo userVo;

    /** 门店名称 */
    @NotBlank(message = "门店名称不能为空")
    @Excel(name = "门店名称")
    private String storesName;

    /** 用户名称 */
    @NotBlank(message = "姓名不能为空")
    @Excel(name = "用户名称")
    private String userName;

    /** 门店地址 */
    @NotBlank(message = "门店地址不能为空")
    @Excel(name = "门店地址")
    private String storesAddress;

    /** 手机号码 */
    @Excel(name = "手机号码")
    @NotBlank(message = "手机号码不能为空")
    private String userTelnumber;

    public void setWcuId(Long wcuId) 
    {
        this.wcuId = wcuId;
    }

    public Long getWcuId() 
    {
        return wcuId;
    }
    public void setStoresName(String storesName) 
    {
        this.storesName = storesName;
    }

    public String getStoresName() 
    {
        return storesName;
    }
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }
    public void setStoresAddress(String storesAddress) 
    {
        this.storesAddress = storesAddress;
    }

    public String getStoresAddress() 
    {
        return storesAddress;
    }
    public void setUserTelnumber(String userTelnumber) 
    {
        this.userTelnumber = userTelnumber;
    }

    public String getUserTelnumber() 
    {
        return userTelnumber;
    }

    public UserVo getUserVo() {
        return userVo;
    }

    public void setUserVo(UserVo userVo) {
        this.userVo = userVo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("wcuId", getWcuId())
            .append("storesName", getStoresName())
            .append("userName", getUserName())
            .append("storesAddress", getStoresAddress())
            .append("userTelnumber", getUserTelnumber())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}

  

UserVo.java

package com.joolun.system.domain.vo;

import javax.validation.constraints.NotBlank;

public class UserVo {

    @NotBlank(message = "title不能为空")
    private String title;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

  

 

标签:java,String,return,生效,import,public,append,NotBlank
From: https://www.cnblogs.com/JoePotter/p/16767367.html

相关文章

  • Java19虚拟线程都来了,我正在写的线程代码会被淘汰掉吗?
    Java19中引入了虚拟线程,虽然默认是关闭的,但是可以以Preview模式启用,这绝对是一个重大的更新,今天Java架构杂谈带大家开箱验货,看看这家伙实现了什么了不起的功能。1为什么......
  • Java俱乐部社团面试记录
    Java俱乐部社团面试记录1.申请表自身能拿出手的太少了,能写在申请表上的除了自己的热情,近乎没有,该打打大大小小的比赛了2.个人介绍自己过于紧张,一进门脑子只剩空气了3.......
  • Java日志体系一本通
    主要内容1·学习java日志体系及日志工具的演进2·了解日志采集、处理、分析等各阶段的常用中间件3·学会搭建完整的elk日志平台4·学习日志打点,切面,日志文件等输出手段5·项......
  • 【开悟篇】Java多线程之JUC从入门到精通
    1.多线程J.U.C1.1线程池1.1.1线程回顾1)回顾线程创建方式继承Thread实现Runnable2)线程的状态NEW:刚刚创建,没做任何操作Threadthread=newThread();System.out.println(......
  • java入门(1) 程序运行机制及运行过程
    首先我们来看一下java程序在底层是怎么工作的:JAVA有两种核心机制:Java虚拟机(JavaVirtualMachine):1、java虚拟机可以理解成一个以字节码为机器指令的CPU。2、对于不同的平台......
  • java基础
    集合类Map接口有哪些实现类?对于不需要排序的场景,优先考虑使用HashMap,因为它是性能最好的Map实现。如果需要保证线程安全,则可以使用ConcurrentHashMap。它的性能好于Ha......
  • Java_HTML5
    HTML详解目录1.初识HTMLHTML:HyperTextMarkupLanguage(超文本标记语言)超文本包括:文字、图片、音频、视频、动画等HTML发展史:1993-2013(HTML5)HTML5提供了一些新......
  • java之File的一些常用方法
    文件夹操作-->File-file类可以操作文件和文件夹###File的一些常用方法:-stringgetName():获取文件/文件夹的名字-booleanexists():判断文件是否存在-create......
  • Effective Java 阅读日记 1
    1.用静态工厂方法代替构造器说明在方法内部添加一个静态方法,用于获取一个对象,代替构造器的功能;比如,在boolean包装Boolean类中,就有valueOf方法可以代替构造方法获得一个......
  • JMM(Java内存模型)笔记
    JMM介绍1.什么是JMM?2.JMM的三大特性:1.原子性2.可见性3.有序性3.关于同步的规定:4.解释说明JMM中的八种操作:1.什么是JMM?​JMM是Java内存模型(JavaMemoryModel),简称JMM。它......