Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf h:消息没有输出_Jsf_Jsf 2_Java Ee 6_Jpa 2.0_Bean Validation - Fatal编程技术网

Jsf h:消息没有输出

Jsf h:消息没有输出,jsf,jsf-2,java-ee-6,jpa-2.0,bean-validation,Jsf,Jsf 2,Java Ee 6,Jpa 2.0,Bean Validation,我正在学习bean验证。我用用户名和密码输入字段创建了一个简单的表单,这些字段通过支持bean绑定到模型(用户)属性用户名和密码。我已经用注释标记了它们: @Id @NotNull(message="Username cannot be empty") private String username; @NotNull(message="Password cannot be empty") private String password; 现在,在这个表单的页面上,我把放在..里面。我提交空表

我正在学习bean验证。我用用户名和密码输入字段创建了一个简单的表单,这些字段通过支持bean绑定到模型(用户)属性用户名和密码。我已经用注释标记了它们:

@Id
@NotNull(message="Username cannot be empty")
private String username;
@NotNull(message="Password cannot be empty")
private String password;

现在,在这个表单的页面上,我把
放在
..
里面。我提交空表单,我被重定向到同一页面(我在backingbean的action方法中返回null),但没有显示任何消息。我做错了什么?

解决方案是使用
@NotNull
,而不是使用
@Size
,因为空输入字段实际上是空字符串,而不是
null

,如果您想让
@NotNull
工作,您确实需要让JSF将空字符串设置为
null
。在JSF2.0中,您可以通过向
web.xml
添加以下上下文参数来实现这一点:

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

javax.faces.explait_EMPTY_STRING_SUBMITTED_VALUES_为_NULL
真的
根据经验,我无法判断这是否会触发
@NotNull
,但理论上应该如此。试试看