struts2返回JSON的几种方式

struts2要返回JSON,需要在Action中定义该变量,如data1,然后定义该变量的get、set方法。

第一种方式

将Action中定义了get方法的变量全部返回,注意package必须extends= "json-default",对应的struts.xml如下:

<package name="default" extends="struts-default,json-default">
    <action name="dataMap" class="action.testAction" method="initData">
        <result name="dataMap" type="json"></result>
    </action>
</package>

testAction如下:

private Map<String,Object> dataMap;
public String initData() throws JSONException{
    dataMap = new HashMap<String, Object>();  
        User user = new User();  
        user.setUname("张三");  
        user.setUpassword("123");  
        dataMap.put("user", user);  
        // 放入一个是否操作成功的标识  
        dataMap.put("success", true);
        return "dataMap";       
}
public Map<String, Object> getDataMap() {  
        return dataMap;  
}

前端的js请求代码如下:

$("#b1").click(function(){
    $.post({
        url:'dataMap',
        data:"{}",
        datatype:'json',
        success:function(data){
            console.log(data);
        }
    })
})

这种方法不好的地方是会将Action中所有具有get方法的变量都返回回去,比如在testAction中又定义了变量data2,如果想不返回data2,则需要给getData2加上注解

//设置data2属性不作为json的内容返回 
@JSON(serialize=false)  
    public String getData2() {  
        return data2;  
    }

第二种方式

如果想根据不同的请求返回相应的值,使用另一种方法,struts.xml如下

<action name="dataMap" class="action.testAction" method="tests">  
        <result name="dataMap" type="json">    
            <param name="root">dataMap</param>  
        </result>  
</action>

只会返回<param name="root">变量</param>中定义的变量

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 详谈 Struts2 的核心概念 本文将深入探讨Struts2 的核心概念,首先介绍的是Struts2 的体系结构...
    可爱傻妞是我的爱阅读 1,158评论 0 2
  • 概述 什么是Struts2的框架Struts2是Struts1的下一代产品,是在 struts1和WebWork的...
    inke阅读 2,277评论 0 50
  • 你值得在夏促期间关注的游戏(Metroidvania类) 半开放的地图,探索与动作并重,最耐玩的横轴动作门类。 2...
    药荚阅读 1,084评论 1 2