還是借用上次的筆記 來繼續寫,這個時候我們就不需要用到Servlet了,要使用到Action。
配置xml
<!-- (1)定義package,並繼承json-default -->
<package name="json" namespace="/" extends="json-default">
<action name="*ShowAction" class="action.ShowAction" method="{1}">
<!-- (2)result的type類型爲“json”,將返回序列化的json格式數據 -->
<result name="success" type="json">
<!-- (3)指定需要格式化的跟對象 -->
<param name="root">result</param>
</result>
</action>
</package>
Action中的寫法
public class ShowAction extends ActionSupport {
//要將返回的JSON數據放到值棧範圍,這裏不需要我們手動轉換struts2的json插件會爲我們轉換
Map<String, Object> result = new HashMap<String, Object>(0);
public String show(){
Users users = new Users("張三", "q123");
//將Users對象轉換爲JSONObject
JSONObject jsonObject = JSONObject.fromObject(users);
//使用JSONObject的toString()方法將JSONObject轉換成字符串
System.out.println( "users:" + jsonObject.toString() );
List<String> listStr = new ArrayList<String>(0);
listStr.add("小明");
listStr.add("小紅");
JSONArray jsonListStr = JSONArray.fromObject(listStr);
List<Users> listUsers = new ArrayList<Users>(0);
listUsers.add(new Users("大名", "123"));
listUsers.add(new Users("大紅", "456"));
JSONArray jsonListUsers = JSONArray.fromObject(listUsers);
Map<String, String> mapStr = new HashMap<String, String>(0);
mapStr.put("彩虹", "彩彩");
mapStr.put("豆豆", "小豆");
JSONObject jsonMapStr = JSONObject.fromObject(mapStr);
Map<String, Users> mapUser = new HashMap<String, Users>(0);
mapUser.put("1", new Users("小彩虹", "123"));
mapUser.put("2", new Users("小豆豆", "123"));
JSONObject jsonMapUser = JSONObject.fromObject(mapUser);
result.put("jsonListStr", jsonListStr);
result.put("jsonListUsers", jsonListUsers);
result.put("jsonMapStr", jsonMapStr);
result.put("jsonMapUser", jsonMapUser);
result.put("users", jsonObject);
return Action.SUCCESS;
}
public Map<String, Object> getResult() {
return result;
}
public void setResult(Map<String, Object> result) {
this.result = result;
}
}
前臺的jsp頁面就需要訪問action了
<script>
$(function () {
$.ajax({
type:"POST",
dataType:"JSON",
url:"/showShowAction",
success:function(data){
}
});
});
筆記代碼
http://download.csdn.net/detail/gxy1317/9619519