0
顯然,你不能使用普通的+操作符在jsp中追加字符串...至少它不適合我。有沒有辦法做到這一點?我的代碼是相關的片段...如何連接EL中的字符串?
${fn:length(example.name) > 15 ? fn:substring(example.name,0,14) + '...' : example.name} // does not work because of + operator
顯然,你不能使用普通的+操作符在jsp中追加字符串...至少它不適合我。有沒有辦法做到這一點?我的代碼是相關的片段...如何連接EL中的字符串?
${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。有關示例,請參閱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;
}
你確定你不需要圍繞'FN括號:子(example.name,0,14)+」。 ..''?我一直髮現Java的三元運算符是finkedy – mrk
不,這沒有什麼幫助。好主意。 – Charlotte
我認爲將邏輯移入''''getName()'函數會更好。我想知道爲什麼這個線程有[javascript]標籤?我認爲[el]標籤應該在這裏,而不是[javascript]標籤 –