Struts2返回JSON数据

1. 导包

    除导入基本包以外还要导入struts2-json-plugin-2.3.15.3.jar

2. 实现Action(JSONExample.java)

package test;

import java.util.HashMap;
import java.util.Map;

import com.opensymphony.xwork2.Action;
import org.apache.struts2.json.annotations.JSON;

public class JSONExample{
    //模拟处理结果的属性
    private int[] ints = {10, 20};
    private Map<String , String> map = new HashMap<String , String>();
    private String customName = "顾客";
    //封装请求参数的三个属性
    private String field1;
    //'transient'修饰的属性不会被序列化
    private transient String field2;
    //没有setter和getter方法的字段不会被序列化
    private String field3;
    public String execute(){
        field2 = "333";
        map.put("name", "疯狂Java讲义");
        return Action.SUCCESS;
    }
    //使用注释语法来改变该属性序列化后的属性名
    @JSON(name="newName")
    public Map getMap(){
        return this.map;
    }
    //customName属性的setter和getter方法
    public void setCustomName(String customName){
        this.customName = customName;
    }
    public String getCustomName(){
        return this.customName;
    }
    //field1属性的setter和getter方法
    public void setField1(String field1){
        this.field1 = field1;
    }
    public String getField1(){
        return this.field1;
    }
    //field2属性的setter和getter方法
    public void setField2(String field2){
        this.field2 = field2;
    }
    public String getField2(){
        return this.field2;
    }
    //field3属性的setter和getter方法
    public void setField3(String field3){
        this.field3 = field3;
    }
    public String getField3(){
        return this.field3;
    }
}

3. 配置Action(struts.xml)

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
    <constant name="struts.i18n.encoding" value="UTF-8"/>
    <package name="example"  extends="json-default">
        <action name="JSONExample" class="test.JSONExample">
            <!-- 配置类型的json的Result -->
            <result type="json">
                <!-- 为该Result指定参数 -->
                <param name="noCache">true</param>
                <param name="contentType">text/html</param>
                <!-- 设置只返回Action的map属性 -->
                <!--  param name="root">map</param -->
            </result>
        </action>
    </package>
</struts>

4. 测试返回结果

    浏览器输入: http://localhost:8080/TestStrutsJSON/example/JSONExample(项目路径+Action配置文件包名+Action名)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值