显然,您不能使用normal +运算符在jsp中附加字符串…至少对我而言不起作用。有办法吗?我的相关代码片段…
${fn:length(example.name) > 15 ? fn:substring(example.name,0,14) + '...' : example.name} // does not work because of + operator
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处理此函数。有关示例,请参阅答案的底部“ 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; }