2010-12-13 12 views
1

は、私は(JSF 1.2で)これに似た何かをしたい:JSF 1.2ページからのBeanメソッドへのアクセス - フックライフサイクル?ハックゲッター?

<html> 
... 
#{myObject.foreignKey(parentObject.primaryKey)} 

<h:inputText value="#{myObject.myProperty}"/> 
</html> 

や他の言葉で:ウェブページから、私はそのページに到達したときにオブジェクトに値を設定したいです。

これはJSF 2.0では簡単ですが、JSF 1.2ではまったく不可能です。 ハック/回避策はありますか? オブジェクトと文字列/整数を引数とし、返されたオブジェクトを処理する関数を定義しますか? inputText(および他のすべての入力フィールド)を上書きし、すべての種類のフレームワーク関連のクラスにアクセスすることは厄介なようです

答えて

1

これはJSF実装に固有のものではなく、EL実装です。 EL 2.2 from Java EE 6より前の標準EL実装では、そのようなメソッド引数を渡すことはできません。 EL 2.2(Tomcat 7、Glassfish 3、JBoss 6など)をサポートするservletcontainerにアップグレードするだけでなく、EL実装を自分で置き換えることもできます。特定の要件を達成するために一般的に使用されるものはJBoss-ELです。ダウンロードして/WEB-INF/libjboss-el.jarを入れて、web.xmlに以下を追加し、あなたはJSF実装としてクロサギ科を使用していると仮定すると:

<context-param>  
    <param-name>com.sun.faces.expressionFactory</param-name> 
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value> 
</context-param> 

代替はちょうどJSTL<c:set>を使用している:

<html xmlns="java.sun.com/jsp/jstl/core"> 
... 
<c:set target="#{myObject}" scope="request" property="foreignKey" value="#{parentObject.primaryKey}" /> 

注意をFaceletsのこと'xmlns:c="java.sun.com/jstl/core"の組み込みJSTLライブラリにはc:setも含まれていますが、機能にはかなり制限があります。 xmlns:c="java.sun.com/jsp/jstl/core"には、完全なJSTL libが必要です。通常は、少し先のservletcontainerとともに出荷されています。しかし、たとえばApache Tomcatでは、自分でダウンロードしてインストールする必要があります。リンクや詳細については、our JSTL wiki pageを参照してください。

+0

私はかなりイライラしています。最後の方法を試してみるには、属性 'var'は必須のエラーです。 varとしてダミーを渡すと、ターゲットを無視するだけです。たぶん私たちは特別なELのlibを使用しているか、私は何かを逃しています(私たちは春を使用しています)。私は明日それをもう一度見なければならない私は恐れている。 – Toskan

+0

my c:set属性 'var'が必要です。エラーは古いJSTL 1.0 xmlns ...の結果です。 xmlns:c = "http://java.sun.com/jsp/jstl/core"(http://www.jsptutorial)ではなく、xmlns:c = "http://java.sun.com/jstl/core" .org/content/jstl inドイツ語)。 問題:よく私はjstl c:setが動作していることを確認できませんでした。JBoss 4.2.2でsetterを呼び出すことはありませんでした。私はJSPのサンプルのヒープを見つけましたが、JSFを使った例はありませんでした。 – Toskan

+0

私はまだ暗闇の中でつまずいているようです。新しい/ jsp/jstl/..タグはまったく動作しません。混乱のビットがあるようです... http://stackoverflow.com/questions/2373592/how-do-you-use-jstlを参照してください。私もxhtmlを使用しています – Toskan

関連する問題