2017-01-25 6 views
2

ここでELには奇妙な問題があります。静的メソッドをELで使用する

ELでString.join()を使用したかっただけですが、動作しません。

#{String.join(',', myList)} 

これはJSFで何も実行されませんが、ページがロードされないようになっています。私は<ui:repeat>でこれを行うことができますが、私はEL式でそれを使用する必要があることを知っています。

アイデア?

答えて

2

ELで静的メソッドを呼び出すことはできません。だから、あなたはあなたがELでの関数としての静的メソッドを公開するカスタム関数を書くことができます#{stringBean.join(',', myList)}

+0

私はこのケースを防ぐ方法を見つけようとしていました...ありがとうございました! – AZVR

+1

あなたはようこそ!だから、答えを受け入れてください。 – jklee

+0

別の方法があります。適切な用語やキーワードがあることがわかります。 – BalusC

0

を呼び出すことができますString.join()

@RequestScoped 
@Named 
public class StringBean { 

    public String join(CharSequence delimiter, Iterable<? extends CharSequence> elements) { 
     return String.join(delimiter, elements); 
    } 
} 

を呼び出すメソッドを持つBeanを作成します。同様の質問はhereと答えました。

1

私はこれに対するアプローチを見つけました。

私はorg.apache.commons.lang3.ArrayUtilsを使用していますが、それは私のために働いている

<managed-bean> 
    <managed-bean-name>String</managed-bean-name> 
    <managed-bean-class>java.lang.String</managed-bean-class> 
    <managed-bean-scope>application</managed-bean-scope> 
</managed-bean> 

のfaces-config.xmlでBeanとしてごutilのクラスを登録します。

関連する問題