属性的添加和文件上传

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";
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值