使用struts-json插件生成json数据
在maven中添加
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
新建一个action
package com.zk.sample.example;
import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.Action;
public class JSONAction extends ExampleSupport {
public String execute(){
setName("Mary");
setAge(21);
setSchool("ZK");
hobby = new ArrayList<String>();
hobby.add("footboll");
hobby.add("volleyball");
setHobby(hobby);
return Action.SUCCESS;
}
private String name;
private int age;
private String school;
private List<String> hobby;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public void setSchool(String sch){
this.school = sch;
}
public String getSchool(){
return school;
}
public void setHobby(List<String> hobby){
this.hobby = hobby;
}
public List<String> getHobby(){
return hobby;
}
}
其实原理很简单,就是将数据暴露在stackvalues中,其他的事情就交给插件处理了
新建一个jsonaction专用的example.xml,命名可自已修改
<?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">
<!--
- This file is included by the struts.xml file as an example
- of how to break up the configuration file into multiple files.
-->
<struts>
<package name="example" namespace="/example" extends="json-default">
<default-action-ref name="HelloWorld" />
<!-- Add additional "example" package actions here. -->
<action name="getJSONResult" class="com.zk.sample.example.JSONAction">
<result type="json" />
</action>
</package>
</struts>
注意的地方是要继承json-default
然后在struts.xml加入该子xml
<include file="example.xml"/>