如何正确使用@NotNull注释?

时间:2019-05-11 17:52:12

标签: jsf bean-validation

我在Java Bean类的@NotNull注释中使用了JSF的注册页面。但是它并没有像预期的那样工作。

这是我的xhtml页面的一部分:

User Name : <h:inputText value="#{user.userName}" />

这是我的Java bean部分:

@NotNull(message = "User name cannot be null")
private String userName;

public String getUserName() {
    return userName;
}

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

但是它仍然将userName作为''保存到数据库(PostgreSQL)中。因此,从技术上讲,它不是null。 我知道可能是我也必须使数据库上的该列不为空。但是我们接下来使用@NotNull批注呢?

1 个答案:

答案 0 :(得分:2)

我相信您要使用的是@NotBlank。这是@NotNull@NotEmpty@NotBlank之间的一些reference

public class UserNotBlank {

    @NotBlank(message = "Name may not be blank")
    private String name;

    // standard constructors / getters / toString

}
  

@NotNull:受约束的CharSequence,Collection,Map或Array有效,只要它不为null,但可以为空

     

@NotEmpty:受约束的CharSequence,Collection,Map或Array有效,只要它不为null且其大小/长度大于零即可。

     

@NotBlank:受约束的字符串有效,只要它不为null且修剪后的长度大于零即可