1

我需要在我的模型中设置一些值并将页面导航到另一个值,但是在按钮单击时没有任何反应(页面导航和方法都没有触发)......我的代码在轮播之外完美运行,但在轮播内部它不起作用(不页面导航)

<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>

上面的代码可以使我的页面导航并且我想要触发的方法也可以正常工作

4

2 回答 2

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";
}
于 2012-08-14T12:41:06.210 回答
0

尝试将 commandButton 放在 p:column 中。我遇到了这个问题,这里http://forum.primefaces.org/viewtopic.php?f=3&t=16120帮助了我。

于 2012-12-29T19:51:42.800 回答