3

次のような 2 つの RemoteCommand を定義しました。

<p:remoteCommand name="rc1" actionListener="#{rcBean.rcActionListener1}" action="#{rcBean.rcAction1}" />

<p:remoteCommand name="rc2" action="#{rcBean.rcAction2}" />

Javascript メソッドは、次のようなパラメーターを使用して rc1 と rc2 を呼び出します。

rc1({a:'value for a', b:'value for b'});

rc2({a:'value for a', b:'value for b'});

そして、rcBean rcActionListener と rcAction は: [コードの rcBean 部分]

protected String param_a, param_b;

protected void processRcParams() {
    FacesContext context = FacesContext.getCurrentInstance();
    Map map = context.getExternalContext().getRequestParameterMap();
    param_a = (String) map.get("a");
    param_b = (String) map.get("b");
}

public void rcActionListener1() {
    processRcParams();
}

public void rcAction1() {
    //-> parameters setted
    //-> process something...
}

public void rcAction2() {
    //-> parameters not set yet, and so
    processRcParams();
    //-> process something...
}

パラメータが p:remoteCommand で直接定義されていない (JavaScript から rc1 または rc2 を介して渡される) と判断し、アクションでパラメータを直接読み取ることができる場合は、actionListener は必要ありません。

このためのベスト プラクティスは何ですか: actionListener の前にパラメーターを読み取るか、アクションで直接パラメーターを読み取りますか? なぜ?

4

1 に答える 1

1
<script type="text/javascript">
            //<![CDATA[
            function test(){
                document.getElementById('hiddenurlpage').value = "test1";
                lazyload();

            }
                //]]>
        </script>
<h:inputHidden id="hiddenurlpage" value="#{userBean.currentpage}"/>
<p:remoteCommand name="lazyload"  process="@this,hiddenurlpage" />
于 2013-01-03T13:55:29.630 に答える