我有这个:
<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);
}
知道我做错了什么吗?谢谢!
答案 0 :(得分:4)
<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?
答案 1 :(得分:1)
我认为使用<h:commandLink>
将其操作设置为您的方法会更好,然后更改方法以返回与您的结果对应的String。那就是:
<h:commandLink value="Sign In" action="#{loginHandler.dismissSignUpdialog}" />
豆子:
public String dismissSignUpDialog() {
setUpDialogDismissed(true);
return "login";
}