一尘不染

如何在EL中串联字符串?

jsp

显然,您不能使用normal +运算符在jsp中附加字符串…至少对我而言不起作用。有办法吗?我的相关代码片段…

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

阅读 244

收藏
2020-06-08

共1个答案

一尘不染

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;
}
2020-06-08