2010-12-15 9 views
0

現在、JSPを使用して簡単に解決できる問題があります。とにかくIDが入ったページが生成されました。 JSFは実行時にこの値を読み込み(例えばページの読み込み)、このIDを持つDBのクエリを実行して結果を表示する必要があります。 JSPでは、これは簡単なことではありませんが、JSFでは外部からBeanのデータを操作する方法がわかりません。何か案は?事前にJSFでページでレンダリングされた値を読み取る

Thxを、 クリス

+1

<c:set scope="request" target="#{bean}" property="id" value="123" /> <f:view beforePhase="#{bean.onload}"> ... </f:view> 

ため、このIDは何ですか?これはどのように供給されますか?ハードコーディング?リクエストパラメータ? – BalusC

+0

このIDは、IDに接続されているDB内のエントリを取得するために使用されます。 IDはハードコードされています。 – methical

+0

JSPでどのようにしたのですか?私たちはJSFで試すことができます – mvg

答えて

1

このスニペットを使用してJavaコードの値を読み出すことができ、私はむしろそれ一環ただろう(URI、パラメータなど)をHTTPリクエストの何らかの形で呼び出すか、モデル内で実行します。

JSTLc:setを使用すると、ビューからBeanプロパティを設定することができます。レンダリング応答には、そのセッターメソッドまたはf:view beforePhaseを使用して実行できます。

public class Bean { 
    private String id; // +getter+setter 

    public void onload(PhaseEvent event) { 
     // Value of id is available here. 
     System.out.println(id); // 123 
    } 

    // ... 
} 
+0

ヒントのおかげで、私はこれを行うと思います。これを超えている理由は、CMSが静的ページを生成するためです。著者はCMSでDBを選択することができます。IDはページにレンダリングされ、いくつかの愚かな技術的な決定のために、JSFでこれを正しく実行する方法を試してみる必要があります。私はここでJSFを使用していないでしょうが、私はちょうど仲間です。 – methical

0

HM、私はあなたがJavaコードからGET引数を読み出したいことを正しく理解していますか?

URLはhttp://www.example.com/?foo=bar

である、あなたはそれは、このIDは、ビュー側にハードコードされていることは本当に私を超えます

FacesContext context = FacesContext.getCurrentInstance(); 
String theValue = context.getExternalContext().getRequestParameterMap().get("foo"); 
+0

そのパラメータがページにレンダリングされる前に – methical

関連する問題