下面的情况:

在一个丰富:dataTable中在A4J:形式,我创建A4J:commandLink选择值,并把它传递给和JBoss EL动作语法豆

action="#{bean.myaction(myparameter)}"

此工作没有问题。

但是,如果我重新呈现形式与AJAX调用来过滤数据表,当我选择值,它给我错误的结果:从选择的索引,但是从滤波前的数据

任何想法?

感谢您扎克给我正确的解决方案仅需5分钟。

我想传递的参数在括号中的动作更优雅,但是,嘿:这个作品。 :)

感谢您了很多。

P.S。我编辑的标题了。

有帮助吗?

解决方案

尝试使用:

<a4j:commandLink action="#{bean.myaction}">
    <f:param name="myparameter" value="paramValue" />
</a4j:commandLink>

和然后经由requestParameter("myparameter")通过FacesContext访问在动作该参数。

作为一个侧面说明,这不是jboss的EL,它的统一表达式语言(EL)。这是JSP / JSF一般的只是一个特性,因为由Sun指定。

其他提示

除了扎克的回答,我会说,如果你需要为了延长EL表达式必须调用方法与参数的能力,你可以使用的 EL函子库:

action="#{bean.myaction$[myparameter].action}"

是您数据表使用带有@DataModel注释集合填充?如果是这样的尝试滤波,使得它得到重新请求时,从上下文中删除。

例如。

//In filter method
Contexts.removeFromAllContexts("yourDataModelCollection");

把数据表中<a4j:region>为我工作。通过这种方式,你仍然可以使用JBoss EL参数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top