2016-09-18 1 views
0

私はforeach内の文字列を含むリストをループしているので、foreachループ内の変数はforeachループ内に記述されたBeanメソッドにパラメータとして渡されます。私は多くのサイトを検索しましたが、どこでもコマンドボタンやリンクなしでBeanメソッドを実行することはできないという解決法を見つけ出しています。コマンドボタンやリンクなしでBeanメソッドを実行する方法はありますか?jsfのボタンやリンクを使わずにforeach内でBeanメソッドを実行するには?

<c:forEach var="name" items="#{bean.stringList}" 
varStatus="loopCounter"> 

<!--I have to execute the method here passing "name" as parameter--> 

</c:forEach> 
+0

なぜこの操作をXHTML形式で行う必要がある場合は、非同期で行う必要がありますか。 –

+3

http://xyproblem.info – BalusC

答えて

3

EL 2.2以降では、引数で非ゲッターメソッドを呼び出すことができます。だから、使用することができます

<c:forEach var="name" items="#{bean.stringList}" 
      varStatus="loopCounter"> 
    <c:set var="dummy" value="#{bean.yourMethod(name)}" /> 
</c:forEach> 

をただし、あなたが最も可能性が高いなどPhaseListenerのように、よりエレガントな方法で行うことができ、ここで何か、@PostConstruct方法、f:viewActionを解決しようとしているされている

参照してください。また

+0

ありがとうございます。それはまた動作していますし、もうまくいきます。 –

+0

ようこそ。うまくいけば、関連記事も同様に有用であったはずです。 –

関連する問題