package com.dineshonjava.struts2.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.Action;
/**
* @author Dinesh Rajput
*
*/
public class JSONAction{
private static final long serialVersionUID = 1L;
private String name = "Dinesh";
private String[] cityArray = {"Noida","Delhi", "Mumbai"};
private int age = 27;
private int[] pincodeArray = {20301,110006,210081};
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 otherName = "Other";
public JSONAction(){
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 getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String[] getCityArray() {
return cityArray;
}
public void setCityArray(String[] cityArray) {
this.cityArray = cityArray;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int[] getPincodeArray() {
return pincodeArray;
}
public void setPincodeArray(int[] pincodeArray) {
this.pincodeArray = pincodeArray;
}
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;
}
}
Create Configuration file:<?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" extends="json-default" namespace="/">
<action name="getjson" class="com.dineshonjava.struts2.action.JSONAction">
<result type="json"/>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Struts2JsonIntegration</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>json.action</welcome-file>
</welcome-file-list>
</web-app>

Labels: struts2