3

JSFで変数パラメータを使用してメソッドを呼び出すにはどうすればよいですか?

私はこのようなことを試しました:

<h:commandButton value="Send" action="#{myBean.checkPIN(someOtherBean.PIN)}" />

ただし、これは機能しません。

4

3 に答える 3

5

EL 2.2+ を使用している場合は可能です。

古いバージョンの EL を使用している場合は、次の操作を使用できます。

<h:commandButton value="Send" action="#{myBean.checkPIN}" />
   <f:param name="parameter" value="123" />
</h:commandButton>

マネージド Bean では、次のように取得できます。

public void checkPIN() {
   ...
   Map<String, String> parameterMap = (Map<String, String>) externalContext.getRequestParameterMap();
   String param = parameterMap.get("parameter");
   ...
}
于 2013-05-10T15:22:01.180 に答える
0

で動作しEL 2.2ます。あなたが使用しているので、おそらくあなたが使用しているバージョンですJSF 2(そうではないかもしれませんが)。

非常に簡単なテストを実行できます。OtherMB次のようなものを使用できます。

@ManagedBean(name = "otherMB")
public class OtherMB{

    public String getValue(){
        return "Other Managed Bean Value";
    }

}

そして、あなたのメソッドは次のMainMBようになります:

@ManagedBean(name = "mainMB")
public class MainMB{

    public void method(String str){
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(str));
    }

}

そして、あなたxhtmlはボタンを使って関数を呼び出すことができます:

<h:commandButton action="#{mainMB.method(otherMB.value)}" value="Click Me!" />

h:commandButtonは 内にあるh:form必要があり、メッセージを表示するにはコンポーネントが必要であることを覚えておいてください。または、コンソールにメッセージを出力するように実装を変更することもできます

于 2013-05-10T15:29:22.477 に答える