1

これが良い習慣かどうかはわかりませんがcommandButton、ユーザーコンテキストに応じて、同じからマネージドBeanに対して異なるアクションを呼び出したいと思います。その理由は、アプリケーション内のさまざまな場所からページにアクセスし、1つのコマンドを元の場所への一種の「戻る」ボタンにしたいためです。カスタムNavigationHandlerでリダイレクトを使用するMyFacesOrchestraFlowのアイデアに基づいてカスタムメカニズムを実装しましたがaction、commandButtonの属性をパラメーター化する方法があるかどうか疑問に思います。

どんな提案も歓迎します

4

1 に答える 1

1

ターゲット環境が Servlet 3.0 / EL 2.2 (Tomcat 7、Glassfish 3 など) をサポートしている場合、またはJBoss ELがインストールされている場合は、deisred 引数を直接メソッドに渡すことができます。だからあなたはただ持つことができます

public void submit(String argument) {
    // ...
}

<h:commandButton value="submit" action="#{bean.submit('some')}" />

または、EL スコープ変数に基づいて:

<h:commandButton value="submit" action="#{bean.submit(some)}" />

ただし、他の方法もあります。<f:param><f:setPropertyActionListener>、などを考えてくださいApplication#evaluateExpressionGet()。それらの多くは、<h:dataTable>ここでのコンテキストで回答されています: How can I pass selected row to commandLink inside dataTable? (データテーブル外でも原則は変わりません)

于 2013-01-24T17:00:24.200 に答える