1

情况如下:

在 a4j:form 中的 rich:dataTable 中,我创建了一个 a4j:commandLink 来选择值并使用 jboss el 操作语法将其传递给 bean

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

这没有问题。

但是,如果我重新渲染表单以使用 ajax 调用过滤数据表,当我选择值时,它会给我错误的结果:选择的索引,但过滤前的数据。

有任何想法吗?

感谢 Zack 在 5 分钟内为我提供了正确的解决方案。

我认为在括号之间的操作中传递参数更优雅,但是,嘿:这行得通。:)

十分感谢。

ps 我也在编辑标题。

4

4 回答 4

2

尝试使用:

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

然后requestParameter("myparameter")通过FacesContext.

作为旁注,这不是 jboss EL,它是统一表达语言 (EL)。正如 Sun 所指定的,它通常只是 JSP/JSF 的一个特性。

于 2009-05-15T14:15:36.870 回答
2

除了 Zack 的回答,我想说如果您需要扩展 EL 表达式以便能够使用参数调用方法,您可以使用EL Functors库:

action="#{bean.myaction$[myparameter].action}"
于 2009-05-15T14:27:14.767 回答
0

您的数据表是否使用带有 @DataModel 注释的 Collection 填充?如果是这样,请尝试在过滤时将其从上下文中删除,以便重新请求它。

例如。

//In filter method
Contexts.removeFromAllContexts("yourDataModelCollection");
于 2009-05-15T15:04:06.580 回答
0

将数据表放入<a4j:region>对我有用的地方。这样,您仍然可以使用 JBoss EL 参数。

于 2013-10-29T13:16:03.703 回答