1.访问或添加几个属性
如果仅仅是访问和添加几个属性用以下方法
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app", "application范围");
ctx.getSession().put("ses","session范围");
ctx.put("req", "request范围");
2.如果要得到属性对象,可以用以下方法
HttpServletRequest request = ServletActionContext.getRequest();
ServletContext servletContext = ServletActionContext.getServletContext();
request.setAttribute("req", "请求范围");
request.getSession().setAttribute("ses", "会话范围");
servletContext.setAttribute("app", "应用范围");
3.文件上传
a.引入需要用到的jar包,如commons-io-1.3.2jar
b.设置form表单
<form action="${pageContext.request.contextPath}/命名空间/action名称.action" enctype="multipart/form-data" method="post">
文件:<input type="file" name="image">
<input type="submit" value="上传"/>
</form>
c.action响应后的方法处理
public String execute() throws IOException {
String realpath = ServletActionContext.getServletContext().getRealPath("/images");
if(image!=null) {
File savefile = new File(new File(realpath),imageFileName);
if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();
FileUtils.copyFile(image,savefile);
ActionContext.getContext().put("message", "上传成功");
}
return "success";
}
image为文件,imageFileName为文件名称,imageContentType为文件类型,文件上传有默认大小,如需修改,则应修改文件上传大小常量
当为多文件上传时,需将类中属性改为List类型或数组类型。execute做一下修改
public String execute() throws IOException {
String realpath = ServletActionContext.getServletContext().getRealPath("/images");
if(image!=null) {
File savedir = new File(realpath); //文件保存目录
if(!savedir.exists()) savedir.mkdirs(); //不存在就创建
for(int i=0;i<image.length;i++) {
File savefile = new File(savedir,imageFileName[i]);
FileUtils.copyFile(image[i],savefile);
}
}
ActionContext.getContext().put("message", "上传成功");
return "success";
}