我刚学着用autocomplete,是照着http://www.open-open.com/doc/view/3b4b0124eb2a4aa991c7d8743a928d04写的。
我的action是这么写的:public String findAreaByName() throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String q = String.valueOf(request.getParameter("area"));
q = new String(q.getBytes("iso8859-1"), "utf-8");
String[] str = dao.findAreaByName(q.trim());
if (str != null) {
for (int i = 0; i < str.length; i++) {
out.println(str[i]);
}
}
} catch (Exception ex) { } finally {
out.close();
}
return null;
}我的问题是这里面的request并没有被定义成一个对象,它是从哪来的,难道它是一个全局变量,希望高手帮忙,谢谢了。

解决方案 »

  1.   

    这应该是struts2的写法,Action类extends ActionSupport implements ServletRequestAware,ServletResponseAware   没个Action都是继承ActionSupport和实现ServletRequestAware,ServletResponseAware;所以这个request是继承来的
      

  2.   

    这应该是定义的一个全局变量,在action里定义的
      

  3.   

    只要有服务器和客户端,就有了请求和响应,也就是你说的request和response,
    这是javaee的根本,只不过struts2通过反射机制把这两个对象赋值给了ServletActionContext,
    所以你就可以从这里取了,具体过程你可以看一下struts2的源码