Struts2.3.1中整合DWR3.0实现文件上传

  Struts2.3.1 中整合DWR3.0 实现文件上传

  步骤1:导入 dwr*.jar ,

  struts2-dwr-plugin-2.3.1.jar

  步骤2:在web.xml中引入dwr的配置

  <servlet>  <servlet-name>dwr-invoker</servlet-name>  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>  <init-param>  <param-name>debug</param-name>  <param-value>true</param-value>  </init-param>  </servlet>     <servlet-mapping>  <servlet-name>dwr-invoker</servlet-name>  <url-pattern>/dwr/*</url-pattern>  </servlet-mapping>

  注意需要修改原来配置好的 struts2 原<url-pattern>/*</url-pattern> 为<url-pattern>*.do</url-pattern> 表示struts2只负责处理 .do 结尾的请求    步骤3:在web.xml同级目录中定义一个dwr.xml 配置文件, (dwr.xml可以去dwr.jar包中获得)

  dwr.xml配置如下:

  <dwr>   <allow>   creator="new" :表示每一次dwr请求但是创建一个新的实例   javascript="DWRService" 表示页面通过什么名字来对应调用你的java类提供服务   <create creator="new" javascript="DWRService">   指定为前台提供服务的java类 这里的DWRDemo类在页面使用的时候使用DWRService调用   java类就是一个普通的java类   <param name="class" value="org.fd.dwr.DWRDemo"></param>     </create>   </allow>   </dwr>

  步骤4:

  必须引入依赖的js文件一般有2个ajax 核心引擎

  <scripttype=’text/javascript’src=’/dwr/engine.js’></script>

  对应 在步骤3:中定义的 javascript="DWRService" 关联的java类

  <scripttype=’text/javascript’src=’/dwr/interface/DWRService.js’></script>

  可选引入依赖

  提供一些方便的工具方法的使用

  <scripttype=’text/javascript’src=’/dwr/util.js’></script>

  步骤5:

  使用

  DWRService.sayHello(参数 , 如果有返回,回调方法 )

  代码如下:html代码

  <scripttype=’text/javascript’src=’/dwr/engine.js’></script>  <scripttype=’text/javascript’src=’/dwr/util.js’></script>  <scripttype=’text/javascript’src=’/dwr/interface/DWRService.js’></script>  <scriptlanguage="JavaScript">     //dwr文件上传   varup=function(){   varheadf=dwr.util.getValue("headfile");   DWRService.headUp(headf,function(flag){   if(flag){   alert("成功");   }else{   alert("不成功");   }   });   }      </script>  </head>  <body>  <imgsrc="images/angel.jpg"id="headimage">  <inputtype="file"name="headfile"id="headfile">  用户名:<inputtype="text"name="name"id="name"onblur="up()">  <inputtype="button"value="上传头像"onclick="up()"/>  </body>  </html>

  dwr.xml 配置

  <dwr>  <allow>  <createcreator="new"javascript="DWRService">  <paramname="class"value="org.fk.dwr.DWRDemo"></param>  </create>  </allow>  </dwr>

  java代码如下:

  importjava.io.File;   importorg.apache.commons.io.FileUtils;   importorg.directwebremoting.WebContext;   importorg.directwebremoting.WebContextFactory;   importorg.directwebremoting.io.FileTransfer;   publicclassDWRDemo{   publicStringsayHello(Stringname){   System.out.println("欢迎您:"+name);   return"欢迎您:"+name;   }      /**   *dwr文件上传   *@paramftFileTransfer封装类前台js提交的文件数据   *@return   */  publicbooleanheadUp(FileTransferft){   WebContextwc=WebContextFactory.get();   //获得应用路径   StringheadImages=wc.getSession().getServletContext().getRealPath("/headImages");   Filefile=newFile(headImages);   //如果文件夹不存在,就创建   if(!file.exists()){   file.mkdirs();   }   try{   //文件上传核心代码使用commons-io-2.0.1.jar完成   FileUtils.copyInputStreamToFile(ft.getInputStream(),newFile(headImages+File.separator+ft.getFilename()));   returntrue;   }catch(Exceptione){   e.printStackTrace();   }   returnfalse;   }   }

当爱丽思丢失了通往仙境的钥匙,

Struts2.3.1中整合DWR3.0实现文件上传

相关文章:

你感兴趣的文章:

标签云: