Struts2上传文件示例
Struts2上传文件示例??
2.Action类
package com.sterning;
import java.io.File;
import javax.servlet.ServletContext;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
public class StrutsFileUpload extends ActionSupport implements
??????? ServletContextAware {
??? private File upload;// 实际上传文件
??? private String uploadContentType; // 文件的内容类型
??? private String uploadFileName; // 上传文件名
??? private String fileCaption;// 上传文件时的备注
??? private ServletContext context;
??? public String execute() throws Exception {
??????? try {
????????????
??????????? String targetDirectory = context.getRealPath("/upload");
??????????? String targetFileName = uploadFileName;
??????????? File target = new File(targetDirectory, targetFileName);
??????????? FileUtils.copyFile(upload, target);????????????
????????????
??????????? setUploadFileName(target.getPath());//保存文件的存放路径
??????? } catch (Exception e) {
??????????? addActionError(e.getMessage());
??????????? return INPUT;
??????? }
??????? return SUCCESS;
??? }
??? public String getFileCaption() {
??????? return fileCaption;
??? }
??? public void setFileCaption(String fileCaption) {
??????? this.fileCaption = fileCaption;
??? }
??? public File getUpload() {
??????? return upload;
??? }
??? public void setUpload(File upload) {
??????? this.upload = upload;
??? }
??? public String getUploadContentType() {
??????? return uploadContentType;
??? }
??? public void setUploadContentType(String uploadContentType) {
??????? this.uploadContentType = uploadContentType;
??? }
??? public String getUploadFileName() {
??????? return uploadFileName;
??? }
??? public void setUploadFileName(String uploadFileName) {
??????? this.uploadFileName = uploadFileName;
??? }
??? public void setServletContext(ServletContext context) {
??????? this.context = context;
??? }
}
3.页面
上传页面:upload.jsp
<%@ page language="java" contentType="text/html; charset=GB2312"%>???
<%@ taglib prefix="s" uri="/struts-tags" %>???
<html>
??? <head>
??????? <title>文件上传示例</title>
??????? <link href="<s:url value="/css/main.css"/>" rel="stylesheet"
??????????? type="text/css" />
??? </head>
??? <body>
??????? <s:actionerror />
??????? <s:fielderror />
??????? <s:form action="doUpload" method="POST" enctype="multipart/form-data">
??????????? <tr>
??????????????? <td colspan="2">
??????????????????? <h1>
??????????????????????? 文件上传示例
??????????????????? </h1>
??????????????? </td>
??????????? </tr>
??????????? <s:file name="upload" label="上传的文件" />
??????????? <s:textfield name="fileCaption" label="备注" />
??????????? <s:submit value="上?? 传"/>
??????? </s:form>
??? </body>
</html>
上传成功页面:upload_success.jsp
<%@ page language="java" contentType="text/html; charset=GB2312"%>??
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
??? <head>
??????? <title>上传成功</title>
??????? <link href="<s:url value="/css/main.css"/>" rel="stylesheet"
??????????? type="text/css" />
??? </head>
??? <body>
??????? <table />
??????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td />
??????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td />
??????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td />
??????????????? </td>
??????????? </tr>
??????? </table>
??? </body>
</html>
4.struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
??? "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
??? "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
??? <constant name="struts.devMode" value="true" />
??? <constant name="struts.i18n.encoding" value="GB2312" />
?
??? <package name="NG" namespace="/" extends="struts-default">
??????? <action name="showUpload">
??????????? <result>/upload.jsp</result>
??????? </action>
????????
??????? <action name="doUpload" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
??? xmlns="http://java.sun.com/xml/ns/j2ee"
??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
??? xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee?http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
??? <display-name>customization</display-name>
??? <filter>
??????? <filter-name>struts-cleanup</filter-name>
??????? <filter-class>
??????????? org.apache.struts2.dispatcher.ActionContextCleanUp
??????? </filter-class>
??? </filter>?
??? <filter>
??????? <filter-name>struts2</filter-name>
??????? <filter-class>
??????????? org.apache.struts2.dispatcher.FilterDispatcher
??????? </filter-class>
??? </filter>
??? <filter-mapping>
??????? <filter-name>struts-cleanup</filter-name>
??????? <url-pattern>/*</url-pattern>
??? </filter-mapping>
??? <filter-mapping>
??????? <filter-name>struts2</filter-name>
??????? <url-pattern>/*</url-pattern>
??? </filter-mapping>
</web-app>
?