質問

Eclipse 3.6.2(Helios)、Tomcat 7、MyFaces 1.2.9を使用しています

f:paramをh:commandlinkに使用すると問題ありませんが、f:paramをh:commandbuttonに配置すると動作しません。どうしたの ?

このサンプルは正常に機能します:

<h:commandLink value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandLink>

しかし、そうではありません

<h:commandButton value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandButton>
役に立ちましたか?

解決

JSF 1.xで、 <f:param> でのみサポートされています <h:commandLink>, <h:outputLink><h:outputFormat>, 、 ありませんで <h:commandButton>. 。そのサポートはJSF 2.0以降のみです。

少なくとも4つのオプションがあります。

  1. 使用する <h:commandLink> 代わりは。必要に応じて、CSSを使用してボタンのように見えるようにスタイリングします。例についても参照してください JSFコマンドButton URLパラメーター.

  2. 使用する <f:attribute> また <f:setPropertyActionListener> 代わりは。参照してください JSFでのコミュニケーション.

  3. メソッド引数としてそれらを渡します action="#{myBean.action('param1', 'param2')}". 。 Tomcat 7は、EL 2.2をサポートするサーブレット3.0コンテナで、渡し方法の引数をサポートします。あなたはあなたを確認する必要があります web.xml 宣言されたサーブレット3.0。参照してください JSF 1.2のELによるパラメーターを使用したメソッドを呼び出します.

  4. JSF 2.0にアップグレードします。 JSF 1.xよりも多くの利点を提供します。参照してください JSF 1.2からJSF 2.0への移行JSF 2.0でのコミュニケーション.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top