【问题标题】:ui:param - passing method argumentsui:param - 传递方法参数
【发布时间】:2018-12-18 09:53:50
【问题描述】:

我有两个 xhtml 文件,一个包含另一个。我已经知道如何将要调用的控制器和方法传递给对话框,但我不确定是否可以将参数/对象实际传递给将被调用的方法。我试过这样的东西,但 Eclipse 告诉我这部分有语法错误

actionListener="#{bean[confMethod(param1, param2)]}"

但它没有任何问题

actionListener="#{bean[confMethod]}"

file1.xhtml:

<ui:composition>
.....
    <ui:include src="/jsf/include/dg_confirm.xhtml">
        <ui:param name="bean" value="#{myController}" />
        <ui:param name="question" value="Are you sure?" />
        <ui:param name="confMethod" value="myMethod" />
        <ui:param name="param1" value="#{otherController.param1}" />
        <ui:param name="param2" value="#{urlToFollow}" />
    </ui:include>

</ui:composition>

和对话框

dg_confirm.xhtml

....
<p:commandButton value="Yes" oncomplete="PF('dlg_conf').hide();" actionListener="#{bean[confMethod(param1, param2)]}" ajax="false"/>
.....

问题:是否可以在 JSF 中以某种方式为方法传递参数?

【问题讨论】:

  • 开始阅读stackoverflow.com/questions/3284236,看看它是否在某种程度上有所帮助(而且eclipse并不总是正确的)并在提问时发布版本信息总是相关的!

标签: jsf el


【解决方案1】:
actionListener="#{bean[confMethod(param1, param2)]}"

这个语法确实是无效的。您基本上期望 confMethod 是一个静态函数,它根据给定的两个参数返回动态方法的名称。

正确的语法如下:

actionListener="#{bean[confMethod](param1, param2)}"

【讨论】:

  • 哦,这是一次真正的尝试,我还以为是伪代码 :-( 抱歉
  • @Kukeltje 是的,这些是我从一个 XHTML 文件传递​​到另一个文件的参数。看起来确实像伪代码。在 BalusC,我花了一段时间才注意到其中的区别,但最终还是有意义的。
猜你喜欢
  • 2013-07-21
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多