0

私はjavascriptを介してprimefacescommanlinkを呼び出そうとしていますが、それが正常に実行されたかどうかを知りたいのですが、成功した場合は、callbackfunctionによって送信された値を取得する必要があります。javascriptの束であるcommandlinkeの戻り値をキャプチャしています。私のシナリオでargs(topicComment)値を取得する方法。いくつかの非表示フィールドを設定することで回避策を実行できると思いますが、直接取得する方法を確認したいと思います。

Javascript

$('.postButton').livequery("click", function (){
        var comment_content = $(this).parent().siblings().children('textarea').val();
        $('#topic_comment').val(comment_content);
        var object=$('#postCmdLink').click();
        var output;
        for (property in object) {
              output += property + ': ' + object[property]+'; ';
            }
            console.log(output);
}

サーバ側

public void addComment(){
        .................................
        context = RequestContext.getCurrentInstance();
        context.addCallbackParam("topicComment", topicBean.getTopicCommentVO().getTopicCommentGuid());

}

4

3 に答える 3

1

CommandLinkjQueryでクリックする代わりに:

var object=$('#postCmdLink').click();

Primefaces AjaxAPIを使用してajaxを呼び出し、コールバックを登録して結果を取得します。

PrimeFaces.ajax.AjaxRequest({
         formId:'userForm'
         ,source:'userForm'
            ,process:'userForm'
         ,update:'msgs'
         ,params:{
            'param_name1':'value1',
            'param_name2':'value2'
         }
          ,oncomplete:function(xhr, status, args) {alert('Done');}  
        });

Primefacesユーザードキュメント3.1.1セクション7.2 Ajax API454ページ。

于 2012-09-01T16:01:14.630 に答える
0

戻り値をどうするかはよくわかりませんが、JavaScriptでoncompleteを使用してアクセスできます。

バッキングビーン:

public class TestBean
{
    public void test()
    {
        RequestContext.getCurrentInstance().addCallbackParam("name", "value");
    }
}

JSF:

<p:commandButton action="#{testBean.test()}" oncomplete="test(xhr, status, args)" value="test" />
<script type="text/javascript">
    function test(xhr, status, args)
    {
        if (args.name)
        {
            alert(args.name);
        }
    }
</script>
于 2012-09-01T12:26:41.887 に答える
0

INMO

それが正常p:commandLinkに実行されたことを確認したい場合は、いくつかのjsコードをonsuccess

このようなもの

<p:commandLink onsuccess="alert('yes!')" id="myId"....
于 2012-08-31T21:23:15.107 に答える