問題タブ [methodexpression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsf - メソッドを複合コンポーネントに渡すと、メソッドが直接実行されます
ほとんどの画面に表示される標準化されたボタンパネルを作成しようとしています。一部のアクションを除いて、ボタンは常に同じであるため、複合コンポーネントのシグネチャは次のとおりです。
この CC を次のようにビューに追加すると:
メソッドzef0302View.save()
は直接呼び出され、CC には渡されません。私は何を間違っていますか?すでにメソッドを属性として他のコンポーネントに渡していますが、何が違うのかわかりません。
JSF 2.2 で Wildfly 8.1 を使用しています。
助けてくれてありがとう。
[編集]
問題は属性の受け渡しではなく、CC 内のそれらの存在のテストでした。どうやらこのようなメソッドをテストすると、<c:if test="null ne cc.attrs.resetAction"/>
そのメソッドが呼び出されます。同じことがテストにも当てはまりますnot empty cc.attrs.resetAction
。
メソッド属性の存在を適切にテストするには、実際にメソッド属性を呼び出す<c:if test="cc.getValueExpression('actionMethod')">
(または必要に応じてrendered
ブロックに配置する) 必要はありません。
解決策は、Smutje が親切にも私の注意を向けてくれた別の質問から得られました (コメントを参照)。
jsf - actionListenerでBeanのメソッドをパッケージにバインドする方法は?
私は Java/JSF テクノロジーの初心者であり、Java/JSF の世界で何が起こっているかを理解するために単純な UI を作成しようとしています。
ここで、ManagedBean のメソッドとそのパッケージ名を CommandButton の actionListener にバインドしたいと考えています。
例:
index.xhtml
MyClass.java
上記の例のようにメソッドをバインドしようとしましたが、メソッドが呼び出されません。その上、Netbeans の小さなオートコンプリート ウィンドウに自分のパッケージが表示されません。メソッドを#{class.method}形式でバインドすると (インターネット上のすべての例のように)、機能します。
これを達成する方法はありますか?
なぜこれを行う必要があるのですか?
プロジェクトがますます大きくなる一方で、命名クラスはますます難しくなっています。したがって、異なるパッケージで同じクラス名を使用すると、作業が楽になると思います。
jsf - なぜバインドできるのかJSFでサポートされていない場合、任意のメソッドに?
Glassfish 3.1.2.2 と JSF Mojarra 2.1.6 を使用しています。
次の Facelets ページがあります。
そして、次のバッキング Bean:
リンクをクリックすると、「Info: It was called: 1」がコンソールに表示されます。
ドキュメントのbinding
読み取り:
ライブラリ: http://xmlns.jcp.org/jsf/core、http://java.sun.com/jsf/core (Jsf コア)
タグ: アクションリスナー
バインディング
javax.faces.event.ActionListener を実装するオブジェクトに評価される値バインディング式。[鉱山を強調]
また、この質問に対する受け入れられた回答ではf:actionListener
、任意のメソッドを呼び出すことはできないと述べています。
サポートされていない場合、バッキング Bean メソッドが呼び出されるのはなぜですか?
jsf - MethodExpression の java.lang.Class.isAssignableFrom での java.lang.NullPointerException
これで入力テキストの値を取得したい:
しかし、ボタンをクリックすると、次のようになりましたNullPointerException
。
jsf - JSF 1.2 から JSF 2.2 への移行 - カスタム コンポーネントの MethodBinding
私は最近、レガシー (JSF 1.2) プロジェクトを継承し、それを JSF 2.2 に準拠させる任務を負っています。私は経験豊富な JSF 開発者ではなく、Web 上のさまざまなアドバイスに従っています。私が直面している適切な解決策が見つからない問題の 1 つは、式言語パラメーターを介してメソッド バインディングをカスタム コンポーネントに渡すことです。以下に例を示します。
ブラウズ.xhtml:
MyBean.java:
Conditional.java (custom:condition タグにマッピング):
EL ハッシュ/中かっこをオフString
の"MyBean.canView"
ままにし、それらをコンポーネントに連結し、MethodExpression
. 以前の JSF 1.2 コードのように、Facelet で EL 式の評価を実行していないことは言うまでもありません。
何か不足していますか?この JSF 1.2 コードを JSF 2.2 にアップコンバートするにはどうすればよいですか?
編集:これは私の「ハック」です。より良い方法があることを願っています。
jsf - メソッド式で「javax.el.ELException: プロパティが型に見つかりません」
Linux サーバーで Primefaces 5.2、jsf 2.2、および Tomcat 8 を使用しています。これは私のxhtmlの行です:
クラス UploadController のメソッド:
桟橋でページを起動すると、すべて正常に動作します。
しかし、Tomcat 8 を搭載した Linux サーバーで起動すると、
javax.el.ELException プロパティ 'complete' がタイプで見つかりません
例外。また、Tomcat 8 の Windows マシンでコードを実行しようとしました (貨物コンテナーで Maven によって起動されました)。問題ありません。
もう 1 つのステップは、メソッド UploadController.complete のパラメーターを配置することでした。
...パラメータが除外された唯一の方法( f:param 、 f:attribute などは受け入れられません => 同じ ELException )。ただし、UploadController のイベント「fileUploadEvent」は NULL です。
問題を解決するには?
jsf - 文字列から評価されるELでメソッドを動的に呼び出す
送信ボタンがあります。この送信ボタンには「action」属性があります。ただし、このアクション属性は常に別の関数 (ある種のジェネリック) を呼び出す必要があります。だから私は動的に関数を呼び出したい。これは、このコンポーネントを再利用する必要があるためです。アクション属性に必要なタイプ(メソッド、文字列など)と、必要な「BeanWithMethodToCall」を正しく参照する方法がわからないだけです。
ELで:
これは難しいようです..誰かが私を助けてくれることを願っています. リフレクションが必要ですか? またはELリゾルバーまたは何か??