如何添加一个f:ajax标签到一个h:链接



我有这个:

<h:link value="Sign In" outcome="login.jsp" />

当点击链接时,它导航到login.jsp。没问题。

我还想在bean中调用一个方法来单击,所以我尝试了这个:

<h:link value="Sign In" outcome="login.jsp" />
  <f:ajax event="click" listener="#{loginHandler.dismissSignUpDialog}" />
</h:link>

但是它从不调用该方法。方法如下所示:

public void dismissSignUpDialog(AjaxBehaviorEvent e) {
    setSignUpDialogDismissed(true);
}

知道我做错了什么吗?谢谢!

<f:ajax>确实不能以这种方式在<h:link>上工作。用<h:commandLink>代替。

<h:form>
    <h:commandLink value="Sign In" action="login.jsp?faces-redirect=true" />
        <f:ajax listener="#{loginHandler.dismissSignUpDialog}" />
    </h:commandLink>
</h:form>
顺便问一下,为什么你还在使用JSP而不是Facelets?

我认为您最好使用<h:commandLink>,其动作设置为您的方法,然后更改该方法以返回与您的结果相对应的字符串。即:

 <h:commandLink value="Sign In" action="#{loginHandler.dismissSignUpdialog}" />

和豆子:

 public String dismissSignUpDialog() {
     setUpDialogDismissed(true);
     return "login";
 }

相关内容

  • 没有找到相关文章

最新更新