【问题标题】:JSF 2 composite component, passing attributes to backing beanJSF 2 复合组件,将属性传递给支持 bean
【发布时间】:2011-07-24 13:11:20
【问题描述】:

我陷入了简单的 JSF2 问题:

XHTML:

<xvf:simpleOut identifier="12345"/>

复合组件应该将“12345”传递给支持bean并做一些输出:

<composite:interface>
    <composite:attribute name="identifier" required="true" type="java.lang.String"/>
</composite:interface>

<composite:implementation>
    <!--@elvariable id="arg" type="java.lang.String"-->
    <ui:param name="arg" value="#{cc.attrs.identifier}"/>
    <h:outputText value="#{myBean.getTestOutput('???????')}"/>
</composite:implementation>

如何将identifier 值(在我的情况下为'12345')传递给bean 的getTestOutput(String arg) 方法?

【问题讨论】:

    标签: jsf jsf-2 el


    【解决方案1】:

    您根本不需要&lt;ui:param&gt; 标签。这应该有效:

    <h:outputText value="#{myBean.getTestOutput(cc.attrs.identifier)}"/>
    

    但最好也通过接口传递myBean,而不是直接引用它,因为它会使复合组件可重用。

    【讨论】:

    • 谢谢,你拯救了我的一天! cc.attrs.* 与 elvariables 不同,对我来说很新鲜,它可以传递给支持 bean。
    • @Osw:我不确定你所说的“不像 elvariables”是什么意思。如果变量可以由 EL Resolver 解析,则可以将其传递给方法 - 如果您的 JSF 容器支持 EL 表达式中的方法参数,这仅在 EL 2.2 中可用。
    • 你是对的。我的错是我使用了嵌套的 el 表达式,例如“#{myBean.getTestOutput(#{arg})}”。再次感谢。
    猜你喜欢
    • 2015-02-26
    • 2016-01-22
    • 2011-06-02
    • 1970-01-01
    • 2011-07-23
    • 2012-04-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    相关资源
    最近更新 更多