Struts2 action 输出 JSON

来源:互联网 发布:睿拓香港知乎 编辑:程序博客网 时间:2024/05/01 12:20

1.插件

Struts2.16 导入jsonplugin-0.34.jar包(下载包)和commons-logging-1.0.4.jar(Struts2 lib下有)

Struts2.18 及以上导入struts2-json-plugin-2.1.8.1.jar(Struts2 lib下有)

拷贝到 WebContent/WEB-INF/lib 下

 

 

假设调用action的URL: http://localhost:8080/articleClass/json_acList.action

 

2.修改struts.xml

<package name="articleClass" namespace="/articleClass" extends="json-default">
        <action name="json_*" class="com.exdoit.ArticleClass">
            <interceptor-ref name="json" /> //这行是接收JSON的格式,无需求可以去掉
            <result type="json"><param name="root">{1}</param></result>
        </action>
</package>

 

<param name="root">{1}</param>的含义是只输出指定get方法返回的值.这里对应的 getAcList() 方法返回的值

 

3.创建com.exdoit.ArticleClass 类

就是一个我们平常建的类,主要是注意以下几点:

 

1:类里建一个 execute 的方法.仅返回 "success"

public String execute(){
        return "success";//最后结果输出 "success"
} 貌似是可以不要这个的

 

2:建一个get方法来获取数据,注意get后面的A要换成大写

public List getAcList(){

        //为 list 设置值
        return list;
   }

 

你要输出的是一个 {"abc":12,"asd":33} 这样的对象.建议使用 json-lib.jar

public JSONObject getFile_addNewCategory(){
        JSONObject js = new JSONObject();
        js.element(SUCCESS, true);
        js.element("fileCateID", 1);
        return js;
    }

 

假如需要其他的json数据,如第2步所示匹配action建立一个get方法就可以了.

 

 

 

参考:http://code.google.com/p/j2eewiki/wiki/Struts2JSON

原创粉丝点击