为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

炎炎设计 2019-10-21 10:28:02
我的Bean验证在我的应用程序中运行良好。现在,我要检查新用户是否没有选择已经选择的用户名。在动作侦听器中,我具有检查数据库的代码,但是如果他们选择了已经存在的用户名,该如何强制将用户发送回他们所在的页面?
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

是的你可以。您可以使用动作侦听器方法进行验证,如果自定义验证失败,则添加面孔消息,然后FacesContext.validationFailed()在返回之前调用。

该解决方案的唯一问题是,它在JSF验证和bean验证之后发生。即,它是在验证阶段之后。如果您有多个动作侦听器,请说出listener1和listener2:如果您在listener1中的自定义验证失败,它将继续执行listener2。但是毕竟,您将在AJAX响应中获得validateFailed。


查看完整回答
反对 回复 2019-10-21
?
函数式编程

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 ...

   }

}


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 490 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信