我需要在我的模型中设置一些值并将页面导航到另一个值但是按钮点击没有任何反应(页面导航和方法都没有触发)....我的代码在旋转木马外部工作完美但在旋转木马内部却没有工作(没有页面导航)
<p:carousel value="#{catalog.getServices()}" var="s" rows="1">
<h:outputLabel for="id" value="Service ID " />
<h:outputText id="id" value="#{s.id}" />
<br></br>
<h:outputLabel for="name" value="Service Name" />
<h:outputText id="name" value="#{s.name}" />
<br />
<h:commandLink action="detail">
<f:setPropertyActionListener value="#{s}" target="#{sh.currentService}" />
<h:commandButton value="getService" style="float:right;" />
</h:commandLink>
</p:carousel>
我的导航在这个旋转木马之外完美无缺
<h:commandLink action="detail">
<f:setPropertyActionListener value="#{s}" target="#{sh.currentService}" />
<h:commandButton value="getService" style="float:right;" />
</h:commandLink>
上面的代码可以使我的页面导航和我想要触发的方法也正常工作
答案 0 :(得分:1)
您应该避免在h:commandButton
内嵌套h:commandLink
。
只需以这种方式使用h:commandButton
:
<h:commandButton value="getService" action="#{yourBean.yourActionMethod}">
<f:setPropertyActionListener .../>
</h:commandButton>
在您的支持bean中,返回导航目标作为操作方法的结果:
public String yourActionMethod() {
// do your stuff here
return "detail";
}
答案 1 :(得分:0)
尝试将commandButton放在p:列中。我有这个问题,http://forum.primefaces.org/viewtopic.php?f=3&t=16120帮助了我。