package com.fengqi.action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.struts2.ServletActionContext;
import com.google.gson.Gson;
import com.opensymphony.xwork2.ActionSupport;
/**
* 创建时间:2014-10-24,ajax请求的action样例
*/
public class AjaxRequestAction extends ActionSupport{
private String sex;
@Override
public String execute() throws Exception {
return super.execute();
}
/**
* ajax请求,以json格式的字符串响应请求
*/
public void ajaxString(){
System.out.println(sex);
//获取相应Response
HttpServletResponse response = ServletActionContext.getResponse();
//设置编码方式
response.setCharacterEncoding("UTF-8");
try {
if(sex.equals("nan")){
response.getWriter().write("我是男的");
}else if(sex.equals("nv")){
response.getWriter().write("我是女的");
}else{
response.getWriter().write("男女都不是");
}
//将数据写到页面中
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* ajax请求,以list的形式响应请求,主要这里的list并不是Util的List,而是经过转换成指出json格式的List
*/
public void ajaxList(){
List<Object> list = new ArrayList<Object>();
list.add("张三");
list.add("李四");
//第一种方法:利用json-lib包中的JSONArray将List转换成JSONArray各式。
JSONArray jsonArray = JSONArray.fromObject(list);
//第二周方法:利用goole的json包将List转换成Json对象。
Gson gson = new Gson();
String gsonList = gson.toJson(list);
//获取相应Response
HttpServletResponse response = ServletActionContext.getResponse();
//设置编码方式
response.setCharacterEncoding("UTF-8");
try {
//将数据写到页面中
response.getWriter().println(jsonArray);
} catch (IOException e) {
e.printStackTrace();
}
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
第五步:在将struts.xml文件更新下,配置AjaxRequestAction.java的访问路径添加如下代码
<package name="ajax" namespace="/ajax" extends="struts-default">
<!-- =================ajax请求跳转====================== -->
<action name="ajax_*" class="com.fengqi.action.AjaxRequestAction" method="ajax{1}">
</action>
</package>最后struts.xml的完整文件是
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"










