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>