在JSF EL表达式中连接两个字符串[重复]

Posted

技术标签:

【中文标题】在JSF EL表达式中连接两个字符串[重复]【英文标题】:Concat two String in JSF EL expression [duplicate] 【发布时间】:2013-06-10 18:08:59 【问题描述】:

我有以下el表达式:

<af:outputText value="#viewArticle.publish ? ('Publish on ' + viewArticle.publishDate + ' by ' + viewArticle.publishFirstName + ' ' + viewArticle.publishLastName) : 'Draft version'"/>

但我得到了

java.lang.NumberFormatException: For input string: "Publish on "

如何加入字符串?

【问题讨论】:

你必须自己写EL字符串concat函数,因为EL把+理解为算术运算。 @refrigerator 表示在 el 中这种功能不可用? 其实可以,如果EL版本是2.0+,使用concat方法,你用的是哪个版本的ADF Faces? @refrigerator 我有使用 jsf 1.2 的 ADF 11.1.1.6.0 technology.amis.nl/2012/01/17/… 这会帮助你:) 【参考方案1】:

您可以使用 String.concat 函数:

&lt;af:outputText value="#viewArticle.publish ? 'Publish on '.concat(viewArticle.publishDate).concat(' by ').concat(viewArticle.publishFirstName).concat(' ').concat(viewArticle.publishLastName) : 'Draft version'"/&gt;

【讨论】:

【参考方案2】:

你应该写

value  = "#someBean.aProperty  something you want in between #someBean.anotherProperty"

【讨论】:

这适用于属性,但如果您需要连接字符串作为 JSF EL 中的函数参数,则无济于事【参考方案3】:

您必须编写自定义 EL 函数。 This example 会帮助你:)

【讨论】:

以上是关于在JSF EL表达式中连接两个字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

EL中的字符串连接[重复]

JSF 何时评估 EL 表达式

如何阻止 EL 表达式在未呈现的 JSF 组件中进行评估?

Spring EL hello world实例

如何调试 JSF/EL

在 JavaScript 文件中混合 JSF EL