Primefaces带有ajax事件的附加属性

Primefaces带有ajax事件的附加属性,ajax,spring,jsf,primefaces,Ajax,Spring,Jsf,Primefaces,我有一个选项卡式组件: <p:tabView id="tabView" var="tab" dynamic="true" cache="true" value="#{integrationBean.tabs}"> <p:ajax event="tabChange" listener="#{integrationBean.tabChanged}" up

我有一个选项卡式组件:

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

        <p:ajax event="tabChange"
            listener="#{integrationBean.tabChanged}"
            update="tabContent"/>
在我的豆子上。 如何将此参数传递给请求?

在xhtml中使用

<f:param name="id" value="#{integrationBean.id}" />
在xhtml中使用

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

通过将id放入flash作用域并在ajax请求中获取它,解决了这个问题。这不是一个理想的解决方案,但它可以工作。

通过将id放入flash范围并在ajax请求中重新获取id来解决这个问题。这不是理想的解决方案,但它确实有效。

使用


使用



我知道如何从请求中获取参数。问题是请求中没有参数“id”。所以在这种情况下paramValue为null。我知道如何从请求中获取params。问题是请求中没有参数“id”。所以在本例中paramValue为null。您的支持bean是Spring管理的bean吗?那个bean的范围是什么?是的,它是由spring管理的,我使用本文中的方法。根据本文,您使用的是视图范围。托管属性(如示例中的
@View
注释属性)是在bean创建之后注入的。以后不能注射。在这个AJAX请求中,您的bean已经被创建了,它稍微复杂一点。我有一个bean处理这个tabChange事件,它将页面加载到
ui:include
组件。这些加载的页面正在使用我需要此id的另一个bean。
integrationBean.tabChange
d方法刚刚将模板属性设置为要加载的模板的名称。您是否尝试了JSF
@ViewScoped
@ManagedPropety
组合来实现这一点,而不是将bean范围移植到Spring中支持bean是Spring管理的bean吗?那个bean的范围是什么?是的,它是由spring管理的,我使用本文中的方法。根据本文,您使用的是视图范围。托管属性(如示例中的
@View
注释属性)是在bean创建之后注入的。以后不能注射。在这个AJAX请求中,您的bean已经被创建了,它稍微复杂一点。我有一个bean处理这个tabChange事件,它将页面加载到
ui:include
组件。这些加载的页面正在使用我需要此id的另一个bean。
integrationBean.tabChange
d方法刚刚将模板属性设置为要加载的模板的名称。您是否尝试了JSF
@ViewScoped
@ManagedPropety
组合来实现这一点,而不是将bean范围移植到Spring中?您将如果同一表单上的验证/转换失败,则会丢失它。如果同一表单上的验证/转换失败,则会丢失它。
<f:param name="id" value="#{integrationBean.id}" />
Map<String, String> map = (Map<String, String>) externalContext.getRequestParameterMap();

String paramValue= map.get("paramName");
<p:ajax event="tabChange" oncomplete="tabChangeCommand()" />
<p:remoteCommand name="tabChangeCommand" actionListener="#{integrationBean.tabChanged}" update="tabContent">
    <f:param name="id" value="#{integrationBean.id}" />
</p:remoteCommand>