<!----><!----><!---->
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:宋体;
mso-font-kerning:1.0pt;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:42.55pt;
mso-footer-margin:49.6pt;
mso-paper-source:0;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:1318531534;
mso-list-type:hybrid;
mso-list-template-ids:1234214414 225203862 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-text:%1、;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
<!---->
采用
Struts
可以很方便的实现文件上传工作
<!---->1、
<!---->上传的页面,
upload.jsp
:
<li>测试struts文件上传</li><br>
<form action="upload.do" method="post" enctype="multipart/form-data">
文件名:<input type="text" name="title"><br>
文件:<input type="file" name="myfile"><br>
<input type="submit" value="上传">
</form>
enctype="multipart/form-data"
就是把你表单的所有信息以流方式提交,页面上的所有信息已经都转换为了文件流,为的是能让服务端得到你上传的文件的文件流。
文件项的
type
必须为
file
2
、建立
ActionForm(
注意:必须要用
FormFile
来接收上传的文件
)
,
UploadActionForm.java
:
package cn.huan.struts;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
/**
* 文件上传ActionForm
* @author 刘银环
*
*/
public class UploadActionForm extends ActionForm {
//文件名
private String title;
//必须要用FormFile
private FormFile myfile;
/**
* @return the title
*/
public String getTitle() {
return title;
}
/**
* @param title the title to set
*/
public void setTitle(String title) {
this.title = title;
}
/**
* @return the myfile
*/
public FormFile getMyfile() {
return myfile;
}
/**
* @param myfile the myfile to set
*/
public void setMyfile(FormFile myfile) {
this.myfile = myfile;
}
}
3
、
Action
中调用
FormFile
中的数据,采用流输出,
UploadTestAction.java
:
package cn.huan.struts;
import java.io.FileOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.upload.FormFile;
/**
* 文件上传Action
* @author 刘银环
*
*/
public class UploadTestAction extends Action {
/* (non-Javadoc)
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UploadActionForm uaf = (UploadActionForm) form;
String title = uaf.getTitle();
FormFile myFile = uaf.getMyfile();
FileOutputStream fos = new FileOutputStream("G:\\" + myFile.getFileName());
fos.write(myFile.getFileData());
fos.flush();
fos.close();
return mapping.findForward("success");
}
}
4
、将
ActionForm
和
Action
配到
struts-config.xml
文件中:
<struts-config>
<form-beans>
<form-bean name="uploadForm" type="cn.huan.struts.UploadActionForm"/>
</form-beans>
<action-mappings>
<action path="/upload"
type="cn.huan.struts.UploadTestAction"
name="uploadForm"
scope="request"
>
<forward name="success" path="/upload_success.jsp"/>
</action>
</action-mappings>
</struts-config>
5
、还可在
struts-config.xml
文件中配置上传的参数,如设置上传的文件大小最大为
50M
:
<controller maxFileSize="50M"/>
到此,
struts
文件上传工程建立完毕。
另:上面的
ActionForm
当然也可以采用
DynaActionForm
来完成,从而不用建
ActionForm
类,
UploadTestAction
中相应代码改为:
DynaActionForm daf = (DynaActionForm) form;
String title = daf.getString("title");
FormFile myFile = (FormFile) daf.get("myfile");
System.out.println("Title:"+title);
FileOutputStream fos = new FileOutputStream("G:\\" + myFile.getFileName());
fos.write(myFile.getFileData());
fos.flush();
fos.close();
return mapping.findForward("success");
struts-config.xml
文件中关于
ActionForm
和
Action
的配置相应改为:
<struts-config>
<form-beans>
<!-- DynaActionForm for the upload -->
<form-bean name="dynaForm2" type="org.apache.struts.action.DynaActionForm">
<form-property name="title" type="java.lang.String"/>
<form-property name="myfile" type="org.apache.struts.upload.FormFile"/>
</form-bean>
</form-beans>
<action-mappings>
<action path="/upload"
type="cn.huan.struts.UploadTestAction"
name="dynaForm2"
scope="request"
>
<forward name="success" path="/upload_success.jsp"/>
</action>
</action-mappings>
<controller maxFileSize="50M"/>
</struts-config>
。。。。。。。。。
分享到:
相关推荐
本节我们将初识Struts2,了解其核心概念、工作原理以及如何开始使用。 **1. Struts2 概述** Struts2是Apache软件基金会下的开源项目,它是Struts1的升级版,弥补了Struts1在功能和灵活性上的不足。Struts2提供了...
#### 二、初识Struts2配置文件 **1. web.xml文件** - 主要配置StrutsPrepareAndExecuteFilter,这是一个过滤器,负责初始化整个Struts框架并处理所有请求。 - 可以通过初始化参数来指定加载额外的XML配置文件,...
#### 二、初识struts2配置文件 struts2的配置主要包括以下几个文件: **(1)web.xml文件** - **StrutsPrepareAndExecuteFilter**:负责初始化整个struts框架,并处理所有请求。可以设置初始化参数,如指定加载...
本案例“Struts2之模型驱动及分层架构初识”将深入探讨Struts2中的模型驱动模式和分层架构的概念及其应用。通过实践案例struts004,我们可以更直观地理解这些关键概念。 首先,让我们来了解**模型驱动**。在Struts2...
在这个“Struts2之Servlet API及单元测试初识案例struts005”中,我们将探讨Struts2如何与Servlet API结合使用,以及如何进行单元测试。 Servlet API是Java EE平台的核心部分,用于构建动态Web应用程序。Struts2...
5. **插件架构**:Struts2.0具有丰富的插件支持,如文件上传、日期时间选择等,这些插件可以轻松地扩展框架功能。 SSH集成步骤: 1. **Spring**:Spring提供依赖注入(DI)和面向切面编程(AOP),负责管理和协调...
3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何...
这个压缩包“初识Java EE经典MVC框架Struts.rar”很可能是为了帮助初学者理解Struts框架的基本概念、架构以及如何在实际项目中应用。 首先,让我们来深入了解一下Struts框架的核心概念: 1. **模型(Model)**:模型...
本篇文章将带你初识Struts2,并通过实际操作来体验其工作原理和基本用法。提供的压缩包文件"teststruts2"可能包含了示例代码或配置文件,用于辅助学习。 首先,我们了解Struts2的核心概念: 1. **Action类**:在...
这个“Struts教程大全”压缩包包含了一系列的学习资源,旨在帮助开发者从初识到精通Struts技术和相关API。 首先,我们看到有两个版本的Struts API文档:Struts 1.1 API.chm和Struts 2.0 API.chm。这些CHM文件是...
**Struts与JSP结合学习:初识登录界面** 在Web开发中,Struts框架是一个广泛应用的MVC(Model-View-Controller)架构,它帮助开发者有效地组织和管理应用程序的结构。而JSP(JavaServer Pages)则是一种用于创建...
第2章 初识Struts 2 16 2.1 声明性架构 16 2.1.1 两种配置 16 2.1.2 声明架构的两种方式 17 2.1.3 智能默认值 20 2.2 简单的HelloWorld示例 20 2.2.1 部署示例应用程序 20 2.2.2 探索HelloWorld应用程序 24 2.3 使用...
4. **上传多个文件(二十八).txt**:这部分内容可能讲解了如何使用Struts2处理多文件上传,涉及到Action类的配置、接收文件的JavaBean以及前端表单的构造。 5. **设定上传文件类型和大小(二十九).txt**:在...
第2章初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例 26 2.5.1 ...