1

我有这个 tabview 组件:

<p:tabView id="tabView"
        var="tab"
        dynamic="true"
        cache="true"
        value="#{integrationBean.tabs}">

        <p:ajax event="tabChange"
            listener="#{integrationBean.tabChanged}"
            update="tabContent"/>

我需要将属性传递给 ajax 请求。就像是

<p:ajax event="tabChange"
                listener="#{integrationBean.tabChanged}"
                update="tabContent">
<f:param name="id" value="#{integrationBean.id}" />
<!-- OR -->
<f:attribute name="id" value="#{integrationBean.id}" />
<!-- Neither of this works -->
</p:ajax>

所以我可以

@Value("#{request.getParameter('id')}")
protected Long id;

在我的豆子上。如何将此参数传递给请求?

4

3 回答 3

3

使用<p:remoteCommand>.

<p:ajax event="tabChange" oncomplete="tabChangeCommand()" />
<p:remoteCommand name="tabChangeCommand" actionListener="#{integrationBean.tabChanged}" update="tabContent">
    <f:param name="id" value="#{integrationBean.id}" />
</p:remoteCommand>
于 2013-03-13T18:53:31.020 回答
-1

<f:param/>在你的 xhtml 中使用

<f:param name="id" value="#{integrationBean.id}" />

您可以使用ExternalContext#getRequestParameterMap()从 backing bean 中检索它

Map<String, String> map = (Map<String, String>) externalContext.getRequestParameterMap();

String paramValue= map.get("paramName");
于 2013-03-04T16:38:59.830 回答
-1

通过将 id 放入 flash 范围并在 ajax 请求中取回它来解决它。这不是理想的解决方案,但它有效。

于 2013-03-05T07:51:53.787 回答