我的Bean验证在我的应用程序中运行良好。现在,我要检查新用户是否没有选择已经选择的用户名。在动作侦听器中,我具有检查数据库的代码,但是如果他们选择了已经存在的用户名,该如何强制将用户发送回他们所在的页面?
3 回答
倚天杖
TA贡献1828条经验 获得超3个赞
是的你可以。您可以使用动作侦听器方法进行验证,如果自定义验证失败,则添加面孔消息,然后FacesContext.validationFailed()
在返回之前调用。
该解决方案的唯一问题是,它在JSF验证和bean验证之后发生。即,它是在验证阶段之后。如果您有多个动作侦听器,请说出listener1和listener2:如果您在listener1中的自定义验证失败,它将继续执行listener2。但是毕竟,您将在AJAX响应中获得validateFailed。
函数式编程
TA贡献1807条经验 获得超9个赞
为此,最好使用action方法而不是actionListener。然后null,如果用户名存在,则可以从此方法返回(重新加载触发操作的页面)。这是一个例子:
在方面:
<h:commandButton action="#{testBean.doAction}" value="and... Action"/>
在豆:
public String doAction() {
if (userExists) {
return null;
} else {
// go on processing ...
}
}
添加回答
举报
0/150
提交
取消