起初要二者一起使用是处于要用ajax的考虑,假如在structs2当中也能支持ajax的实现,那么就没必要使用servlet了。我们知道,action的作用是根据返回值跳转页面。这点让使用ajax有点麻烦,其实,action是完美支持ajax的,在其中有一个ServletActionContext.getResponse()方法,可以获得到response,让这个action的执行方法返回值是null即可。
public String execute() throws Exception {
// TODO Auto-generated method stub
HttpServletResponse response= ServletActionContext.getResponse();
response.setContentType("text/xml");
response.setCharacterEncoding("UTF-8");
// 模拟这个教师的教工号
String tid = "2010";
PrintWriter out = response.getWriter();
out.println("<response>");
// 接下来模拟数据,两组数据,表示教师所教授的两门课
String[] cities = { "江苏", "山东" };
for (int i = 0; i < cities.length; i++) {
out.println("<city>");
out.println("<cityname>" + cities[i] + "</cityname>");
out.println("<cityvalue>" + i + "</cityvalue>");
out.println("</city>");
}
out.println("</response>");
out.flush();
out.close();
return null;
}