我不能让我的commandLink触发bean动作。
我尝试使用<p:commandButton>
,<h:commandLink>
,<h:outputLink>
和<p:commandLink>
调用我的bean方法。
此外,我使用了onclick
,onmousedown
,action
和actionListener
,但这些都没有效果。
我的代码目前看起来像这样:
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 - 我没有使用PhaseListener
或EventListener
。
12 - 没有Filter
或Servlet
阻止对FacesServlet的请求。
奖金:
supposed
。 <p:layout>
元素,我的网站代码位于<p:layoutUnit>
内。