显然,你不能使用普通的+运算符在jsp中追加字符串...至少它不适合我。有办法吗?我的代码片段是相关的......
${fn:length(example.name) > 15 ? fn:substring(example.name,0,14) + '...' : example.name} // does not work because of + operator
答案 0 :(得分: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;
}