在普通servlet中可以直接得到request,但是在struts2中如果使用request比较麻烦一些。此前想获得web路径需要用到request怎么试也不行。看到这篇文章,豁然开朗,唉,基础差啊。原来需要用到ServletActionContext类。而且还要有getter setter方法。
http://hi.baidu.com/200770842223/item/7e3a2f0fc854d723a1312d12
package org.crazyit.app.action;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import com.Sql.*;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class GetFileList extends ActionSupport {
HttpServletRequest request;
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
List<String> fileNameList = new ArrayList<String>();
public void setFileNameList(List<String> fileNameList) {
this.fileNameList = fileNameList;
}
public List<String> getFileNameList() {
return fileNameList;
}
public String execute() {
request = ServletActionContext.getRequest();// 获取request对象 ;
String path = request.getSession().getServletContext().getRealPath("/");
System.out.println(path);
Sql_FileList sf = new Sql_FileList();
fileNameList = sf.fileName();
ActionContext ctx = ActionContext.getContext();
ctx.getSession().put("fileNameList", fileNameList);
return SUCCESS;
}
public static void main(String[] args) {
}
}