パラメータを渡した jsp サブビュー ページがあり、そのパラメータをセッション Bean に格納されているマップの get() メソッドに渡したいと考えています。
元:
<h:panelGrid id="panelGrid1" rendered="#{MySessionBean[param.id].showPanelGrid1}">
...
</h:panelGrid>
上記の例では、MySessionBean は Map インターフェイスを実装しています。キー [params.id] に対してオブジェクトが存在しない場合は、オブジェクトを作成してマップに配置する独自のカスタム get メソッドがあります。コードをデバッグ モードで実行すると、MySessionBean の get メソッドが呼び出されず、パネルが常にレンダリングされます。パラメータを正しく渡していませんか? または、サブビューに渡されたパラメーターにアクセスしますか?
このサブビューにパラメーターを渡す方法は次のとおりです。
<f:subview id="subview1">
<jsp:include page="/MyTemplatePage.jsp">
<jsp:param name="id" value="staticUniqueId1"/>
</jsp:include>
</f:subview>
これを実行しようとしている理由は、このテンプレート サブビューを 1 つのページに複数回含めて、各インスタンスが同じバッキング Bean オブジェクトを持たないようにするためです。したがって、セッションでマップを使用し、それに ID を渡して、各インスタンスのバッキング Bean にアクセスします。
また、私は JSF 1.2、JSTL 1.1、JBoss 4.0.4 に制限されています。そのため、RichFaces または JSF 2 を使用する回答は使用できません。
編集: 11/22/11 11:23
[param.id] を静的な文字列値に置き換えました。
<h:panelGrid id="panelGrid1" rendered="#{MySessionBean.MY_TEMP_VAL.showPanelGrid1}">
...
</h:panelGrid>
そして、すべてがうまくいきました。それは私の map get メソッドをトリガーし、セッション Bean とすべてにアクセスしました。そのため、[params.id] を使用してマップ オブジェクトに渡す全体が明らかに気に入りません。ここから何をすべきかわからない。