现在的位置: 首页 > 综合 > 正文

Struts2 文件上传

2013年04月08日 ⁄ 综合 ⁄ 共 2335字 ⁄ 字号 评论关闭

 

之前我们可能使用过文件上传组件进行开发系统中文件上传的功能,但在Struts2 中为我们提供了更为简单易用的上传功能,当然虽然易用,但其实际不是对底层文件IOHTTP的封装。下面我们介绍一下,如何在Struts2 中使用文件上传的功能。

我们知识Strust2中大部分的功能都是通过拦截器实现的,当然,这里的文件上传也不例外。同样也是也采用拦截器来支持的。

 

下面以例子来看一下如何使用strsut2 实现文件上传:

1.   myeclipse 下创建一个strust2  web 工程,正常配置struts.xml

2.   web目录下面创建一个upload.jsp 页面,做为页面上传的界面,代码如下:

<%@ page language="java"  contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>

<%@ taglib uri="/struts-tags" prefix="s" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

 

    <title>register page</title>

   

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">   

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

    <script type="text/javascript">

        function addMore(){

            var td=document.getElementById("more");

            var br=document.createElement("br");

            var input=document.createElement("input");

            var button=document.createElement("input");

            input.type="file";

            input.name="file";

            button.type="button";

            button.value="remove";

           

            button.onclick=function(){

                td.removeChild(br);

                td.removeChild(input);

                td.removeChild(button);

            }

           

            td.appendChild(br);

            td.appendChild(input);

            td.appendChild(button);

        }

    </script>

  </head>

 

  <body>

    <br>

    <s:fielderror />

    <s:form action="upload" theme="simple" enctype="multipart/form-data" >

    <table border="1" width="500">

         <tr>

             <td colspan="2">文件上传</td>

         </tr>

         <tr>

             <td>username</td>

             <td><s:textfield name="username"/></td>

         </tr>

         <tr>

             <td>password</td>

             <td><s:password name="password" id="password"/></td>

         </tr>

         <tr>

             <td>file1</td>

             <td id="more"><s:file name="file" id="file"/><input type="button" onclick="addMore()" value="添加..."/></td>

         </tr>

         <tr>

             <td></td>

             <td><s:submit name="submit"/></td>

         </tr>

    </table>

    </s:form>

  </body>

</html>

界面显示如下:

 

 

该例子是一个用户可以指定上传文件个数进行上伟的例子,单击添加按钮可以新增上传控制,这个通过javascript 脚本实现的。注意添加的组件的名字都是file,这样上传的文件会传到Action中的一个

抱歉!评论已关闭.