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

这篇文章主要介绍了如何解决@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;
    }
}

引用\[1\]和\[2\]提供了一段代码和注解的示例。在这个示例,@NotBlank是一个用于验证字符串非空的注解。在UserLoginDto类,@NotBlank注解被用于验证password、type和username字段的值是否为空。如果这些字段的值为空,将会抛出一个带有相应错误信息的异常。引用\[3\]的UserVo类也使用了@NotBlank注解来验证title字段的值是否为空。 根据提供的代码和注解示例,@NotBlank注解应该是有效的。如果在使用@NotBlank注解时没有起到预期的效果,可能有以下几个原因: 1. 没有正确导入@NotBlank注解。请确保在使用@NotBlank注解时导入的是正确的包,即javax.validation.constraints.NotBlank。 2. 没有正确配置验证器。在使用@Valid注解进行参数验证时,需要确保已经配置了相应的验证器。可以参考相关文档或框架的使用说明来配置验证器。 3. 没有正确使用@Valid注解。在控制器使用@Valid注解时,需要确保已经正确应用在需要验证的参数上。 请检查以上几个方面,以确保@NotBlank注解能够正常工作。如果问题仍然存在,请提供更多的代码和相关配置信息,以便更好地帮助您解决问题。 #### 引用[.reference_title] - *1* [@NotEmpty、@NotBlank等注解的正确使用 @Validated和@Valid的区别 解决@NotBlank等注解不生效问题 使用...](https://blog.csdn.net/lvoelife/article/details/126283828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [@NotBlank注解不生效解决方法](https://blog.csdn.net/numbbe/article/details/118711371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java,如何解决@NotBlank不生效问题 @NotBlank @NotEmpty不生效,以及对象嵌套问题...](https://blog.csdn.net/j610152753/article/details/127201199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

启航学途

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值