首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 开源技术 >> Struts >> 正文

演示Struts2实现简单上传代码

    web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
  <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</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.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="struts2" extends="struts-default">
        <action name="upload" class="com.xie.struts.upload.UploadAction">
            <result name="success">/upload/result.jsp</result>
        </action>
    </package>
</struts>

    upload.jsp

 

<%...@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%...@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>upload</title>
</head>
<body>
<s:form action="upload" enctype="multipart/form-data">
    <s:textfield name="username" id="username" label="username"/>
    <s:file name="file" id="file" label="file"/>
    <s:submit/>
</s:form>
</body>
</html>
 result.jsp

<%...@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%...@ taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <title>result</title>
    </head>
    <body>
        <s:property value="username" />
        <br>
        <s:property value="fileFileName" />
    </body>
</html>
UploadAction.java

package com.xie.struts.upload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport ...{
    private String username;

    private File file;

    private String fileFileName; // 有属性file+Filename固定组成

    private String fileContentType; // 有属性file+ContentType固定组成

    public String getUsername() ...{
        return username;
    }

    public void setUsername(String username) ...{
        this.username = username;
    }

    public File getFile() ...{
        return file;
    }

    public void setFile(File file) ...{
        this.file = file;
    }

    public String getFileFileName() ...{
        return fileFileName;
    }

    public void setFileFileName(String fileFileName) ...{
        this.fileFileName = fileFileName;
    }

    public String getFileContentType() ...{
        return fileContentType;
    }

    public void setFileContentType(String fileContentType) ...{
        this.fileContentType = fileContentType;
    }

    @Override
    public String execute() throws Exception ...{
        InputStream is = new FileInputStream(file);
        String root = ServletActionContext.getRequest().getRealPath("/temp");
        File destFile = new File(root, this.getFileFileName());
        OutputStream os = new FileOutputStream(destFile);
        byte[] buffer = new byte[400];
        int length = 0;
        while ((length - is.read(buffer)) > 0) ...{
            os.write(buffer, 0, length);
        }
        is.close();
        os.close();
        return SUCCESS;
    }
}


 

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航