2016-06-13 2 views
0

내 struts 액션 클래스에서 큰 JSON 응답을 반환하고 싶습니다. 다른 도구를 사용하지 않고 Eclipse에서 동적 웹 프로젝트를 만들었습니다.struts 2의 액션에서 JSON을 반환하는 방법

그래서 내가 이것을해야합니다.

+2

특정 문제를 명확히 또는 정확하게 당신이 필요로하는 것을 강조하기 위해 추가 정보를 추가하세요 JSON 작업 공간을 확장합니다. 현재 작성된 내용이므로 귀하가 원하는 내용을 정확하게 말하기는 어렵습니다. How to Ask 페이지에서이 질문에 대한 설명을 참조하십시오. –

답변

0

이 단계를 수행

1 단계의 pom.xml

<!-- Struts 2 --> 
<dependency> 
     <groupId>org.apache.struts</groupId> 
    <artifactId>struts2-core</artifactId> 
    <version>2.1.8</version> 
</dependency> 

<!-- Struts 2 JSON Plugins --> 
<dependency> 
     <groupId>org.apache.struts</groupId> 
    <artifactId>struts2-json-plugin</artifactId> 
    <version>2.1.8</version> 
</dependency> 

당신이 수동으로 단지를 추가하고 WEB-INF/lib 폴더에 복사 할 수 있습니다 받는다는을 사용하지 않는 경우.

2 단계 조치

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

<?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.mkyong.common.action.JSONDataAction"> 
     <result type="json" /> 
    </action> 
</package> 

</struts> 

프로젝트를 실행하고 출력이 될 것입니다 확인 http://localhost:8080/Struts2Example/getJSONResult.action

output

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

은 그냥 struts.xml에서 확인 작업 공간이

<package name="default" namespace="/" extends="json-default"> 
관련 문제