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 ? '...' : ''}
もう一つの方法は、あなたが純粋な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;
}
と
あなたは 'FNの周りに括弧を必要としないことを確認されています。 .. "?私はいつもJavaの三元演算子が厄介であることを発見しました – mrk
いいえ、それは物事を助けません。しかし、良いアイデア。 – Charlotte
私は、ロジックを 'example'の' getName() '関数に移すほうが良いでしょう。そして、なぜこのスレッドに[javascript]タグがあるのだろうか?私は[el]タグを[javascript]タグの代わりにここに入れるべきだと思います –