猿问

如何在actionListener或action方法中执行JSF验证?

我的Bean验证在我的应用程序中运行良好。现在,我要检查新用户是否没有选择已经选择的用户名。

在动作侦听器中,我具有检查数据库的代码,但是如果他们选择了已经存在的用户名,该如何强制将用户发送回他们所在的页面?


炎炎设计
浏览 491回答 3
3回答

倚天杖

是的你可以。您可以使用动作侦听器方法进行验证,如果自定义验证失败,则添加面孔消息,然后FacesContext.validationFailed()在返回之前调用。该解决方案的唯一问题是,它在JSF验证和bean验证之后发生。即,它是在验证阶段之后。如果您有多个动作侦听器,请说出listener1和listener2:如果您在listener1中的自定义验证失败,它将继续执行listener2。但是毕竟,您将在AJAX响应中获得validateFailed。

函数式编程

为此,最好使用action方法而不是actionListener。然后null,如果用户名存在,则可以从此方法返回(重新加载触发操作的页面)。这是一个例子:在方面:<h:commandButton action="#{testBean.doAction}" value="and... Action"/>在豆:public String doAction() {&nbsp; &nbsp;if (userExists) {&nbsp; &nbsp; &nbsp;return null;&nbsp; &nbsp;} else {&nbsp; &nbsp; &nbsp;// go on processing ...&nbsp; &nbsp;}}
随时随地看视频慕课网APP

相关分类

Java
我要回答