0

フォームがあります。フォームを送信すると、同じページのjson応答から成功メッセージを印刷したいと思います。

json応答から多くの値を取得していますが、Javaアクションで定義した「メッセージ」と呼ばれる変数のみが必要です。

フォーマットされたjson応答は次のようになります

       `{"errmsg":null,"jsonModel":null,"message":"Succussfuyly completed the task","model":
        {"createdDate":null,"createrId":null,"id":null,"themeCaption":null,"themeName":null,
        "themeScreenshot":null,"updateId":null,"updatedDate":null},"oper":null,"theme":{"createdDate":null,
        "createrId":null,"id":null,"themeCaption":null,"themeName":null,"themeScreenshot":null,
        "updateId":null,"updatedDate":null},"themeScreenshot":null}`

この応答から、メッセージ変数のみをjspページに出力したいと思います。以下のjqueryコードから、すべての値がjspページに出力されています。しかし、私はメッセージ変数だけが欲しいです。

index.jsp

  <script type="text/javascript">
    $(document).ready( function() {
        $.subscribe('handleJsonResult', function(event,data) {
            $('#result').html("<div id='languagesList'> <s:property value="Message"/> </div>"+'' + data.Message + '');
            var list = $('#languagesList');
                    $.each(event.originalEvent.data, function(index, value) { 
                            list.append('<h1>'+value+'</h1>\n');
                    });
        });
    });    
        </script>  
        </head>
        <body>

     <img id="indicator" src="${pageContext.request.contextPath}/images/others/ajax-loader.gif" alt="Loading..." style="display:none"/>
    <s:form action="updatethemeimageform" method="post" enctype="multipart/form-data" id="remoteform"  theme="simple" > 
               <s:hidden value="%{#parameters.themeid}" name="themId"/> 
               <s:file name="themeScreenshot" label="Theme Screenshot" /> 
              <sj:a button="true" id="btnsid" buttonIcon="ui-icon-gear" dataType="json" indicator="indicator"  onSuccessTopics="handleJsonResult" 
              formIds="remoteform" targets="result"  >Submit This Form</sj:a> 
     </s:form>

         <sj:div id="result" >    
            Json Result will come here
         </sj:div>



                       `-----------
                         ---------------
                    private String Message;

           public String updateThemesImage(){ 
    setMessage("Succussfuyly completed the task"); 
    return SUCCESS;
              }
                   ------------
                    -----------
                   With getter & setters`

上記のjquery関数から、このような出力が 上記のjquery関数の出力 得られます。この問題を解決するのを手伝ってください

4

1 に答える 1

1

ループeachは正しく機能していますが、いくつかの特定の変数のみが必要な場合は、オブジェクト表記を使用してそれらを取得します。

$.subscribe('handleJsonResult', function(event, data) {
    $('#result').html("<div id='languagesList'> <s:property value="Message "/> </div>" + '' + data.Message + '');
    var list = $('#languagesList');

    var jsonData = event.originalEvent.data;
        /* example retrieving ID and message*/
    list.append('<h1>ID:' + jsonData.id + ', Message:' + jsonData.message +'</h1>\n');

});
于 2012-12-16T17:00:03.927 に答える