为什么EL给了我错了对象括号之间的参数?
题
下面的情况:
在一个丰富: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参数。
不隶属于 StackOverflow