发布于 2017-12-12 21:23:40 | 131 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Struts Java MVC框架

Struts 是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。


这篇文章主要为大家详细介绍了Struts2实现多文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前台form 表单:设置method=post,enctype=multipart/form-data。

struts2在原有的上传解析器继承上做了进一步封装,更进一步简化了文件上传。

Action需要使用3个属性来封装该文件域的信息:

(1)类型为File的*属性封装了该文件域对应的文件内容;
(2)类型为String的***FileName属性封装了该文件域对应的文件的文件类型;
(3)类型为String的***ContentType属性封装了该文件域对应的文件的类型。

具体实现:

新建web项目

添加struts2相关包
myeclipse可直接下载,右击项目,如下。

前台


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
 <body>
  <form action="upload.action" method="post" enctype="multipart/form-data">
    <input type="file" name="upload" multiple="multiple"/>
    <input type="submit" value="提交"/>

  </form>
 </body>
</html>

配置web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
 <display-name>UploadFile</display-name>
 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.action</url-pattern>
 </filter-mapping>
</web-app>

配置struts.xml


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
  <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
  <constant name="struts.devMode" value="true"/>
  <constant name="struts.multipart.saveDir" value="/tmp"/>
  <constant name="struts.custom.i18n.resources" value="app"></constant>

  <package name="default" namespace="/" extends="struts-default">
    <action name="upload" class="com.yf.action.UploadAction">
    <result>/index.jsp</result>
    <interceptor-ref name="defaultStack"></interceptor-ref>
    </action>
  </package>
</struts>  

后台代码


public class UploadAction extends ActionSupport{
  private List<File> upload;
  private List<String> uploadContentType;
  private List<String> uploadFileName;

  public List<File> getUpload() {
    return upload;
  }

  public void setUpload(List<File> upload) {
    this.upload = upload;
  }

  public List<String> getUploadContentType() {
    return uploadContentType;
  }

  public void setUploadContentType(List<String> uploadContentType) {
    this.uploadContentType = uploadContentType;
  }

  public List<String> getUploadFileName() {
    return uploadFileName;
  }

  public void setUploadFileName(List<String> uploadFileName) {
    this.uploadFileName = uploadFileName;
  }

  @Override
  public String execute() throws Exception {
    //文件保存路径
    String path = ServletActionContext.getServletContext().getRealPath("/images");
    File file = new File(path);
    //不存在则创建
    if(!file.exists()){
      file.mkdir();
    }
    //循环将文件上传到指定路径
    for(int i = 0; i< upload.size(); i++){
      FileUtils.copyFile(upload.get(i), new File(file,uploadFileName.get(i)));
    }
    return SUCCESS;
  }

结果如下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHPERZ。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务