2012-05-02 7 views
4

私のJSF 1.2プロジェクトでは、Faceletタグファイルを作成し、backing beanメソッド名を渡す必要のあるactionListener属性を持つinputTextを定義しました。 タグファイルに変数actionListener = "#{actionListener}"を定義しようとしました。私はFaceletタグファイルにバッキングアクションを渡す

として値を渡すときに私は、コンポーネントを呼び出す私のXHTMLで
actionListener="#{myBean.preFillData}" 

タグファイルは、プロパティとしてそれを扱い、何のプロパティ「preFillData」が見つからないことを示すエラーが出て。私は

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

に変更した場合、それはメソッド名を示すために、括弧のようなdoesnotので、タグ・ファイル内のパースエラーがあります。

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

おかげ PT

答えて

4

渡す方法式は、タグファイルではサポートされていません。 JSF 2.0以来、いわゆる複合コンポーネントで可能です。

できることは、中カッコ表記を使用してメソッドを呼び出すことができるように、Bean参照とメソッド名を区切ることです。私はそれがactionListenerのために動くかどうかだけは分かりません、あなたは通常アクションを呼び出すためにそれを使用しませんが、それは間違いなくactionのために働くべきです。

など。内部tag.xhtml

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

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

あなたは、あなたがタグファイルにメソッド式を渡すために<o:methodParam>を使用することができ、Faceletsの上でJSF 2.0を使用するために起こる場合のみ。 a.oを参照してください。 Dynamic ui include and commandButton

+0

ありがとう@Balusc。 JSF 1.2とアップグレードする理由を教えてください:) – phewataal

+0

actionListenerに対するコメントについては、通常はアクションを呼び出すのには使用されませんが、2つのテキストボックスの値(郵便番号と拡張子)を単一のプロパティに統合する必要があります私のドメインオブジェクトで、私のアクションとしてsaveを呼び出す前に。この統合はactionListenerの代わりにアクションメソッドでも行われるべきですか? – phewataal

+0

ああ、意味があります。しかし、なぜそれをタグファイルに直接宣言しないのですか?それは再利用可能な 'ActionListener'実装のようで、必ずしもBeanメソッドを参照する必要はありません。 – BalusC

関連する問題