2016-06-13 13 views
0

私のstrutsアクションクラスから大きなJSON応答を返したいとします。 他のツールのmavenを使わずにeclipseでダイナミックWebプロジェクトを作成しました。struts 2のアクションからJSONを戻す方法

私はこれを行うために必要なものです。

+2

を拡張して、あなたのstruts.xmlで確認してください。現在書かれているとおり、あなたが求めていることを正確に伝えるのは難しいです。この質問を明確にする方法については、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> 

あなたが手動でjarファイルを追加し、WEB-INF/libフォルダにそれらをコピーすることができますMavenを使用していない場合。

ステップ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"] 
} 

はちょうどあなたのワークスペースがあなたの特定の問題を明確にしたり、必要な正確に何を強調表示するために、追加の詳細情報を追加してくださいJSON形式のワークスペース

<package name="default" namespace="/" extends="json-default"> 
関連する問題