<p:commandlink>根本没有触发操作</p:commandlink>

时间:2014-09-24 03:35:31

标签: jsf primefaces

我不能让我的commandLink触发bean动作。

我尝试使用<p:commandButton><h:commandLink><h:outputLink><p:commandLink>调用我的bean方法。

此外,我使用了onclickonmousedownactionactionListener,但这些都没有效果。 我的代码目前看起来像这样:

base.xhtml

<div>
    <h:form>
        <p:commandLink id="logoutButton" action="#{loginController.logout}">
            <p:graphicImage name="/images/logout.png"/>
        </p:commandLink>
    </h:form>

    <!-- Rest of code (layout with some layoutUnits) -->
</div

Bean方法(测试目的,而不是实际方法):

public void logout() {
    System.out.println("logged out");
}

根据BalusC,我的问题是重复的。在提出这个问题之前我已经搜索过类似的问题,猜猜是什么?没有任何效果。看看已经回答的同一个问题,以下是我对前面描述的问题的回答:

1 - commandLink位于form

2 - commandLink不在嵌套form

3 - 没有UIInput值验证/转换显示错误。

4 - commandLink不在迭代组件中。

5 - 加载页面时,不会渲染按钮。我将它设置为仅当用户登录时以相同的形式放置commandLink时才进行渲染。它确实使用了AJAX。

6 - UICommand组件的onclick属性和UIForm的onsubmit属性不会引发JavaScript错误。

7 - base.xhtml<h:head>

8 - 我的<h:form>的父级未被更新/呈现。

9 - 我在表格中没有使用enctype="multipart/form-data"

10 - 我没有使用actionListener

11 - 我没有使用PhaseListenerEventListener

12 - 没有FilterServlet阻止对FacesServlet的请求。

奖金:

  • 使用Firebug进行调试时,我注意到当我单击注销按钮时,我从服务器获得了代码200响应,这意味着它是supposed
  • 我的表单位于模板文件(base.xhtml)中。在该表单之后,我使用的是<p:layout>元素,我的网站代码位于<p:layoutUnit>内。

a b c

0 个答案:

没有答案