【发布时间】:2011-07-27 00:08:36
【问题描述】:
显然,您不能使用普通的 + 运算符在 jsp 中附加字符串……至少它对我不起作用。有没有办法做到这一点?我的相关代码片段......
${fn:length(example.name) > 15 ? fn:substring(example.name,0,14) + '...' : example.name} // does not work because of + operator
【问题讨论】:
-
你确定你不需要在
fn:substring(example.name,0,14) + '...'周围加上括号吗?我一直觉得 Java 的三元运算符很挑剔 -
不,这无济于事。好主意。
-
我认为将逻辑移到
example的getName()函数中会更好。我想知道为什么这个线程有 [javascript] 标签?我认为应该在这里使用 [el] 标签而不是 [javascript] 标签 -
我赞同 Sangdol 的想法,但稍作调整......看起来你正在截断,也许只是为了 UI 目的。添加一个 getNameForUI() 调用怎么样?我以前遵循过这样的命名约定 (...forUI()),如果为了 UI 中的外观而只需要稍微更改几个数据点,它会有所帮助。如果必须截断大量不同的数据点,这个想法就会失效。
-
@mrk:“挑剔”行为仅在您在单个 EL 表达式(例如
${cond1 ? .. : cond2 ? ... : ...})中有多个时才会发生。 Apache EL 解析器(它是最广泛使用的解析器)确实有这方面的怪癖。但在这种特殊情况下,没有多个条件表达式。