4

私の JSF 1.2 プロジェクトでは、facelet タグ ファイルを作成し、バッキング Bean メソッド名を渡す必要がある actionListener 属性を持つ inputText を定義しました。タグファイルに変数 actionListener="#{actionListener}" を定義してみました。コンポーネントを呼び出すxhtmlで、値を次のように渡すと

actionListener="#{myBean.preFillData}"

タグ ファイルはそれをプロパティとして扱い、プロパティ「preFillData」が見つからないことを示すエラーが発生します。に変更すると

actionListener="#{myBean.preFillData()}"

メソッド名を括弧で示すのが好きではないため、タグファイルに解析エラーがあります。

メソッド名をタグファイルに渡すにはどうすればよいですか?

ありがとうPT

4

1 に答える 1

4

メソッド式の受け渡しは、タグ ファイルではサポートされていません。JSF 2.0 以降、いわゆる複合コンポーネントでのみ可能になりました。

できることは、Bean 参照とメソッド名を分離して、ブレース表記を使用してメソッドを呼び出すことができるようにすることです。それが でうまくいくかどうかはactionListenerわかりませんが、通常はそれを使用してアクションを呼び出すことはありませんが、action.

例えば

<my:tag ... bean="#{myBean}" actionMethod="preFillData" />

内側とtag.xhtml

<h:commandButton ... action="#{bean[actionMethod]}" />

たまたま Facelets で JSF 2.0 を使用している場合にのみ、 を使用<o:methodParam>してメソッド式をタグ ファイルに渡すことができます。ao Dynamic ui include および commandButtonも参照してください。

于 2012-05-02T19:44:00.363 に答える