h:与f:ajax和ui:repeat一起使用时,不会调用commandLink actionlistener 当我单击链接时,我必须在bean的“onload”方法中传递一个参数并刷新面板组“assist”。当我使用commandButton而不是commandLink时,它工作正常。
<h:panelGroup id="assist" styleClass="tabbed-panel-vertical">
<ul id="assistlink" class="tabbed-panel-vertical-tabs">
<ui:repeat var="assistants"
value="#{permissions.repAssistants}">
<li><h:commandLink
actionListener="#{permissions.onload}"
value="#{assistants.name}"
styleClass="#{permissions.selectedAssistant==assistants.userId ? 'selected' : ''}">
<f:ajax
render=":permissionsform:assist :permissionsform:permissionsContent"
execute="@this">
<f:attribute name="assistantId"
value="#{assistants.userId}" />
</f:ajax>
</h:commandLink></li>
</ui:repeat>
</ul>
`public void onload(ActionEvent event) {
Long userId = Long.valueOf(541);// user.getUserId();
Long assistantId = (Long) event.getComponent().getAttributes().get("assistantId");
System.out.println("User " + assistantId);
}`
答案 0 :(得分:3)
根据评论:
@BalusC它的javascript问题。感谢您指导我查看javascript控制台。 JS错误“Uncaught ReferenceError:mojarra未定义”
确保您的主模板中有<h:head>
标记,而不是<head>
。这样JSF就能够自动包含Ajax魔法所需的JavaScript文件。