2011-07-27 50 views
0

显然,你不能使用普通的+操作符在jsp中追加字符串...至少它不适合我。有没有办法做到这一点?我的代码是相关的片段...如何连接EL中的字符串?

${fn:length(example.name) > 15 ? fn:substring(example.name,0,14) + '...' : example.name} // does not work because of + operator 
+0

你确定你不需要围绕'FN括号:子(example.name,0,14)+”。 ..''?我一直发现Java的三元运算符是finkedy – mrk

+0

不,这没有什么帮助。好主意。 – Charlotte

+0

我认为将逻辑移入''''getName()'函数会更好。我想知道为什么这个线程有[javascript]标签?我认为[el]标签应该在这里,而不是[javascript]标签 –

回答

3

EL不知道字符串连接运算符。相反,您只需将多个EL表达式一起内联。运算符仅在EL中是数字的和运算符。

这里的方法你怎么可以这样做一个:

<c:set var="tooLong" value="${fn:length(example.name) > 15}" /> 
${tooLong ? fn:substring(example.name,0,14) : example.name}${tooLong ? '...' : ''} 

另一种方法是使用EL函数这其中你可以处理这个使用纯Java。有关示例,请参阅Hidden features of JSP/Servlet中答案底部附近的“EL功能”一章。你想结束了,就像这样:

${util:ellipsis(example.name, 15)} 

public static String ellipsis(String text, int maxLength) { 
    return (text.length() > maxLength) ? text.substring(0, maxLength - 1) + "..." : text; 
}