Struts2中json的使用

看了下网络上的对struts2中如何使用json的资料,依旧感觉都不太好,所以闷头下来自己写一下吧
在ajax中经常使用的json数据的传递,那么在struts2框架中我们要怎么使用json呢?
首先,想要在struts2中使用json,要引入如下的包
(这里是基于struts2基础框架的搭建)
基础框架jar文件如图
Struts2框架核心包
使用struts的json功能要求引入的jar包

struts2拓展json
java类

public class JsonAction extends ActionSupport {

    public String getJson(){
        //什么都不做,看看是什么??
        return "json";
    }
}

struts配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <package name="test-json" extends="json-default" namespace="/">
        <action name="json_*" class="com.xbz.json.action.JsonAction" method="{1}">
            <result name="json" type="json" ></result>
            <result name="success" >/index.jsp</result>
        </action>
    </package>
</struts>

运行访问结果为这里写图片描述
那么我们应该如何输出我们想要的数据呢????
只要我们在java类中,定义一个成员,并给它get方法,那么struts返回json类型的结果时就会帮我们将所有的成员变量的值作为json数据输出
案例,我在java类中定义了普通类型数据、自定义类、list/map集合(省略Person类定义和get/set),当然json只需要get,可自行测试

public class JsonAction extends ActionSupport {
    private String user;//基本类型数据
    public Person person;//自定义javaBean
    private List list;
    private Map map;
    public String getJson(){
        user="user";
        person=new Person("1", "person1");
        list=new ArrayList<Person>();
        list.add(user);
        map=new HashMap<String, Person>();
        map.put("personId", person);

        return "json";
    }

访问结果
{“json”:”json”,”list”:[“user”],”map”:{“personId”:{“id”:”1”,”name”:”person1”}},”person”:{“id”:”1”,”name”:”person1”},”user”:”user”}

这里推荐一个json格式化工具,方便我们观察数据:Hijson
我们在开发中不一定需要将所有的成员都输出去,但是又可能必须设置它的get方法,那么我们如何控制哪些数据输出还是保留呢???
只需要修改一下配置文件,我们可以看出json类似一个Map的key->value
所以我们完全可以将需要输出的数据自行封装在Map集合中,然后在给它设置get方法,交由struts输出
假设成员变量Map jsonReslut中放好了我们需要输出的数据,这时只需要在struts配置文件中如下配置

<package name="test-json" extends="json-default" namespace="/">
        <action name="json_*" class="com.xbz.json.action.JsonAction" method="{1}">
            <result name="json" type="json" >
                    <!-- 配置输出指定的类成员数据  -->
                <param name="root">jsonResult</param>
            </result>
        </action>
    </package>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值