admin
管理员
管理员
  • UID1
  • 粉丝1
  • 关注0
  • 发帖数378
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:1978回复:0

Struts2和JSON实例

楼主#
更多 发布于:2015-12-16 21:22

在这个Struts2例子,将学习如何通过“struts2-json-plugin.jar”库将对象转换为JSON格式的数据。



1. Action (JSON)


这是一个将被转换成JSON格式的 Action 类。
package com.yiibai.common.action;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import com.opensymphony.xwork2.Action;
 
public class JSONDataAction{
 
    private String string1 = "A";
    private String[] stringarray1 = {"A1","B1"};
    private int number1 = 123456789;
    private int[] numberarray1 = {1,2,3,4,5,6,7,8,9};
    private List<String> lists = new ArrayList<String>();
    private Map<String, String> maps = new HashMap<String, String>();
     
    //no getter method, will not include in the JSON
    private String string2 = "B";
     
    public JSONDataAction(){
        lists.add("list1");
        lists.add("list2");
        lists.add("list3");
        lists.add("list4");
        lists.add("list5");
         
        maps.put("key1", "value1");
        maps.put("key2", "value2");
        maps.put("key3", "value3");
        maps.put("key4", "value4");
        maps.put("key5", "value5");
    }
 
    public String execute() {
               return Action.SUCCESS;
        }
     
    public String getString1() {
        return string1;
    }
 
    public void setString1(String string1) {
        this.string1 = string1;
    }
 
    public String[] getStringarray1() {
        return stringarray1;
    }
 
    public void setStringarray1(String[] stringarray1) {
        this.stringarray1 = stringarray1;
    }
 
    public int getNumber1() {
        return number1;
    }
 
    public void setNumber1(int number1) {
        this.number1 = number1;
    }
 
    public int[] getNumberarray1() {
        return numberarray1;
    }
 
    public void setNumberarray1(int[] numberarray1) {
        this.numberarray1 = numberarray1;
    }
 
    public List<String> getLists() {
        return lists;
    }
 
    public void setLists(List<String> lists) {
        this.lists = lists;
    }
 
    public Map<String, String> getMaps() {
        return maps;
    }
 
    public void setMaps(Map<String, String> maps) {
        this.maps = maps;
    }
     
}



3. struts.xml


要输出JSON数据,需要声明一个包,它扩展“json-default”,会将结果类型转为“json”。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
  
<struts>
 
   <constant name="struts.devMode" value="true" />
     
   <package name="default" namespace="/" extends="json-default">
      <action name="getJSONResult"
           class="com.yiibai.common.action.JSONDataAction">
           <result type="json" />
      </action>
    </package>
     
</struts>



4. 实例


访问动作URL时,JSONDataAction属性将被转换成JSON格式。http://localhost:8080/struts2json/getJSONResult.action

图片:1-151203212125257.png



JSON 格式 …
{
   "lists":["list-1","list-2","list-3","list-4","list-5"],
   "maps":
   {
     "key4":"value4","key3":"value3","key5":"value5","key2":"value2","key1":"value1"
   },
   "number1":123456789,
   "numberarray1":[1,2,3,4,5,6,7,8,9],
   "string1":"A",
   "stringarray1":["A1","B1"]
}


希望这个简单的例子可以了解JSON插件在Struts2是如何工作的有一个总体的思路。不过,还是有很多有用的参数不包括在这里,请务必阅读 Struts2 JSON插件文档 以获取更多详细信息。


下载源代码(struts2json) – http://pan.baidu.com/s/1bnv8l9X

 

 

 

 

 

 

 

异常中心网是一家专门收集整理程序员编程过程中遇到的常见异常(exception)以及各种异常问答中心的网站。异常中心网旨在,减少程序员在编码遇到异常,处理各种异常时间和痛苦,让程序员能更愉快的、快速的定位异常并查找对应的异常解决方案。异常中心网诚心打造最完美的编程社区为程序员用户服务,努力成为最好的程序员乐园程序员社区程序异常中心程序bug中心异常问答中心

 

喜欢0 评分0
游客

返回顶部