【问题标题】:what's wrong in this el expression?这个 el 表达式有什么问题?
【发布时间】:2011-05-31 13:33:39
【问题描述】:
<ui:repeat value="#{admin.detailTypesList}" var="detailType">
<h:outputText value="#{admin.getDetailTypeTranslation('ContactDetailType_'+detailType)}"/>
</ui:repeat>

对于 el 表达式:

#{admin.getDetailTypeTranslation('ContactDetailType_'+detailType)}

传递给getDetailTypeTranslation的参数是'ContactDetailType_'(没有detailType值)

我做错了什么?

【问题讨论】:

  • @McDowell 不完全是。这个问题还需要在连接表达式中使用 el 变量的知识。

标签: java el


【解决方案1】:

在 EL 中,+ 完全是求和运算符。您可以使用&lt;ui:param&gt; 创建一个新变量,该变量由与 EL 表达式连接的字符串组成,然后改用新变量。

<ui:repeat value="#{admin.detailTypesList}" var="detailType">
    <ui:param name="contactDetailType" value="ContactDetailType_#{detailType}" />
    <h:outputText value="#{admin.getDetailTypeTranslation(contactDetailType)}"/>
</ui:repeat>

请注意,这个问题与 JSF 无关,而与一般的 EL 有关。

【讨论】:

    【解决方案2】:

    jsf 的 EL 并没有真正的 concat 操作('+')。您应该编写一个函数来执行此操作或使用 bean 方法。

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多