【问题标题】:Declare and use variable in JSF2 xhtml page [duplicate]在 JSF2 xhtml 页面中声明和使用变量 [重复]
【发布时间】:2012-11-17 02:10:33
【问题描述】:

我在 JSTL 中使用 <s:set var="buttonText" value="getText('person.button.add')"/> 来使用 buttonText 变量来设置文本。

请有人告诉我如何在 JSF EL 中完成此任务?

问题在这里提出IF-ELSE condition in JSF form. Need to know right approach,但被告知作为一个单独的问题提出。

已编辑:

我已经在上面添加了一个链接以获取详细信息,但这里又是一个。

我在 struts2 项目中使用 JSTL

 <s:if test="person==null || person.id==null || person.id==''">
                <s:set var="buttonText" value="getText('person.button.add')"/>
            </s:if>
            <s:else>
                <s:set var="buttonText" value="getText('person.button.edit')"/>
            </s:else>

我想在 JSF2 中使用相同的方法,但使用表达式语言。我将值保存在一个名为buttonText 的变量中,并在#{buttonText} 之类的地方访问它。我需要解决如何在EL 中编写变量并使用它。希望清楚。

我只需要&lt;s:set var="buttonText" value="getText('person.button.add')"/&gt; 代码行的解决方案。

谢谢

【问题讨论】:

  • 请明确您的问题?你真正想知道什么?
  • 警告 不要使用&lt;ui:param&gt;,如当前高评价答案的第一个选项中所述!总是使用&lt;c:set&gt;,没有任何借口。
  • 为什么,@BalusC?这是因为表达式每次使用时都会重新计算?
  • @bruno:在上面链接的欺骗中有解释。简而言之:这不是 &lt;ui:param&gt; 最初的用途。这与试图用锤子固定螺丝的问题完全相同:在某些情况下它可能会起作用,但它完全不是适合这项工作的工具。

标签: jsf-2


【解决方案1】:

你可以使用ui:param

通过以下方式:

<ui:param name="buttonText" value="#{myBean.MyValue}" />

<ui:param name="buttonText" value="someText" />

<ui:param name="buttonText" value="someText#{myBean.MyValue}" />

以后像这样使用

<h:outputText value="#{buttonText}"/>

另一种选择是通过以下方式使用&lt;c:set

<c:set var="buttonText" value="#{myBean.MyValue}" />

但是注意&lt;c:set是一个JSTL标签,

JSTL 标记在构建视图期间运行(当 XHTML 文件转换为 JSF 组件树)

您可能还想阅读此JSTL in JSF2 Facelets… makes sense?

【讨论】:

    猜你喜欢
    • 2011-12-13
    • 1970-01-01
    • 2012-11-06
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多