`

Struts2 and JSON Annotation Example

 
阅读更多

1. Get Dependency Library

Get the struts2-convention-plugin.jar, struts2-json-plugin.jar library.

pom.xml

 

		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>${struts-version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-convention-plugin</artifactId>
			<version>${struts-version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-json-plugin</artifactId>
			<version>${struts-version}</version>
		</dependency>      

 

 

2.web.xml

 

 <filter>	
	<filter-name>struts2</filter-name>
  	<filter-class>
  		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  	</filter-class>
</filter>
<filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
</filter-mapping>
 

3. Action (JSON)

This is an Action class which will be converted into JSON format.To output the JSON data, you need to declared a @ParentPackage("json-default"), and result type as “json“.

 

package org.fool.action.json;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionSupport;

@Namespace("/")
@ParentPackage("json-default")
public class JSONDataAction extends ActionSupport {
	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> list = new ArrayList<String>();
	private Map<String, String> map = new HashMap<String, String>();

	// no getter method, will not include in the JSON
	@SuppressWarnings("unused")
	private String string2 = "B";

	@Action(value = "getJSONResult", results = { @Result(name = "success", type = "json") })
	public String execute() throws Exception {
		list.add("list1");
		list.add("list2");
		list.add("list3");
		list.add("list4");
		list.add("list5");

		map.put("key1", "value1");
		map.put("key2", "value2");
		map.put("key3", "value3");
		map.put("key4", "value4");
		map.put("key5", "value5");

		return 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> getList() {
		return list;
	}

	public void setList(List<String> list) {
		this.list = list;
	}

	public Map<String, String> getMap() {
		return map;
	}

	public void setMap(Map<String, String> map) {
		this.map = map;
	}

}

4. Demo result

Access the action URL, the JSONDataAction’s properties will be converted into JSON format.
http://localhost:8080/Struts2Json/getJSONResult.action


JSON Format

{
	"list":["list1","list2","list3","list4","list5"],
	"map":{"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"]
}

 

 

  • 大小: 21.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics