2011-07-27 24 views
0

どうやら、通常の+演算子を使ってjspの文字列を追加することはできません。それを行う方法はありますか?関連するコードの断片...ELで文字列を連結する方法は?

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

${util:ellipsis(example.name, 15)} 

あなたは 'FNの周りに括弧を必要としないことを確認されています。 .. "?私はいつもJavaの三元演算子が厄介であることを発見しました – mrk

+0

いいえ、それは物事を助けません。しかし、良いアイデア。 – Charlotte

+0

私は、ロジックを 'example'の' 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 ? '...' : ''} 

もう一つの方法は、あなたが純粋なJavaを使用して、これを扱うことができる特徴このためEL機能を使用することです。例については、私の答えの一番下にある「EL関数」の章をHidden features of JSP/Servletで参照してください。あなたのようなものとして終わるしたいと思います:サブストリング(example.name、0,14)+」:

public static String ellipsis(String text, int maxLength) { 
    return (text.length() > maxLength) ? text.substring(0, maxLength - 1) + "..." : text; 
} 
関連する問題