日期:2014-05-17  浏览次数:20603 次

关于struts2返回多个json
有Result对象
Java code

private boolean flag = false;
private String msg = "未开始";
//getter 和 setter 构造之类全有


action中
Java code

private List<Result> detail;
private Result success;
public String importOrder() {        
    detail = service.importOrderByOrderIDs(ids, this.getOperatorUserId());
    success = new Result(true,"订单导入 完成!");
        return "success";



struts.xml中
Java code

<package name="testcard_ajax" extends="json-default" namespace="/testcard_ajax">
        <action name="testcard_*" class="com.aspire.web.testcardinfo.action.TestCardInfoAction"  method="{1}">
        <result name="success" type="json">
                <param name="includeProperties">
                    detail,success
                </param>         
            </result>
        </action>
    </package>


Ajax 得到的返回消息
Java code

$.ajax({
          type: 'POST',
          url: "/ec_web/testcard_ajax/testcard_importOrder.do",
          data:{"importOrderIdStr":ids.toString(),ajax:true },
          success: function(jsonss){
              var flag = jsonss.success.flag; //断点1
                      var title=jsonss.success.msg;
                      var results = jsonss.detail;
          }
        });



返回的json中,里边有success对象,但success对象是空.
返回的json中,里边有detail对象,但是detail对象也是空

我在js中,断点1的位置加断点
jsonss.success:null;
jsonss.detail:null

为啥子只有名字返回了,里边的对象没有?

------解决方案--------------------
jsonss这个是不是空的?
------解决方案--------------------
Java code
<param name="includeProperties">
                    detail,success
                </param>

------解决方案--------------------
我在项目中是这样配置的:
Java code
<!-- 驗證 角色代碼是否存在  -->
        <action name="validateRoleCode" class="roleAction" method="validateRoleCode">
            <result type="json">
                <param name="includeProperties">status</param>
            </result><!--这里的status只是一个String -->
        </action>
        
        <action name="getUserCodeForRoleCreate" class="roleAction" method="getUserCodeForRoleCreate">
            <result type="json">
                <param name="includeProperties">userList.*</param>
            </result><!--这里的userList装的是一个user对象-->
        </action>

------解决方案--------------------
<param name="includeProperties">
detail,success
</param>
把这个改下。 
<param name="aa"> detail </param>
<param name="dd"> success</param>
在回调函数中直接用jsonss.aa就是detail 。 jsonss.dd就是success ,
------解决方案--------------------
Java code
private List<Result> detail;
private Result success;