2011-07-27 83 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; 
}