- 浏览: 97428 次
- 性别:
- 来自: 北京
最新评论
-
zhaolianyang:
leftcopychenhx 写道&是在什么情况作为逻 ...
JAVA 面试32问 -
zhaolianyang:
Mybeautiful 写道第二十六,当一个线程进入一个对象的 ...
JAVA 面试32问 -
leftcopychenhx:
&是在什么情况作为逻辑运算符呢
JAVA 面试32问 -
Mybeautiful:
第二十六,当一个线程进入一个对象的一个synchronized ...
JAVA 面试32问 -
zhaolianyang:
dayaolili 写道 那就换个有激情有动力的工作吧!换个适 ...
如何在工作中保持旺盛的状态???
Struts2的文件上传和下载续二
说明:使用struts2的框架来实现文件的上传下载。
把之前在web.xml中注释掉的关于filter的代码恢复。
一、在WebRoot根目录下创建一个upload.jsp页面,这个页面是用struts2来实现的:
二、在struts2.xml中配置上传文件的Action,并且注视掉全部关于拦截器的配置,以便不会造成干扰:
三、在WebRoot根目录下创建一个显示信息的页面uploadResult.jsp:
说明:用struts2实现上传功能已经完成,但是当表单中输入汉字的时候会出现乱码现象,如下图:
解决的方法实在struts添加constant属性:<constant name="struts.i18n.encoding" value="gbk">
</constant>
<constant name="struts.multipart.saveDir" value="c:\"></constant>。修改之后如图:
功能:实现多个文件的上传,使用的是List列表来实现。
四、修改UploadAction.java文件:
五、修改一下文件上传的页面upload.jsp,再添加两个上传的控件:
显示效果如图:
说明:使用struts2的框架来实现文件的上传下载。
把之前在web.xml中注释掉的关于filter的代码恢复。
一、在WebRoot根目录下创建一个upload.jsp页面,这个页面是用struts2来实现的:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> <s:form action="upload" theme="simple"> <table align="center" width="40%" border="1"> <tr> <td>username </td> <td> <s:textfield name="username" ></s:textfield> </td> </tr> <tr><td>password</td> <td> <s:password name="password" ></s:password> </td> </tr> <tr><td>file</td> <td> <s:file name="file"></s:file> </td> </tr> <tr><td><s:submit value=" submit "></s:submit></td> <td> <s:reset value=" reset "></s:reset> </td> </tr> </table> </s:form> </body> </html>
二、在struts2.xml中配置上传文件的Action,并且注视掉全部关于拦截器的配置,以便不会造成干扰:
<?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.custom.i18n.resources" value="message"> </constant> <package name="struts2" extends="struts-default"> <!-- <interceptors> <interceptor name="myInterceptor" class="com.test.interceptor.MyInterceptor"> <param name="hello">world</param> </interceptor> <interceptor name="myInterceptor2" class="com.test.interceptor.MyInterceptor2"> </interceptor> <interceptor name="myInterceptor3" class="com.test.interceptor.MyInterceptor3"> </interceptor> <interceptor name="auth" class="com.test.interceptor.AuthInterceptor"> </interceptor> <interceptor-stack name="myStack"> <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="myInterceptor2"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="myStack"></default-interceptor-ref> --> <global-results> <result name="login" type="redirect">/login2.jsp</result> </global-results> <action name="login" class="com.test.action.LoginAction"> <result name="input">/login2.jsp</result> <result name="success">/register2.jsp</result> <result name="failer">login2.jsp</result> </action> <action name="pointConverter" class="com.test.action.PointAction"> <result name="success">/output.jsp</result> </action> <action name="register" class="com.test.action.RegisterAction" method="test"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> <!-- <interceptor-ref name="auth"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="myInterceptor3"> <param name="excludeMethods">test,execute</param> <param name="includeMethods">test</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> --> </action> <action name="upload" class="com.test.action.UploadAction"> <result name="success">/uploadResult.jsp</result> </action> </package> </struts>
三、在WebRoot根目录下创建一个显示信息的页面uploadResult.jsp:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> username: <s:property value="username"/><br> password: <s:property value="password"/><br> file: <s:property value="fileFileName"/> </body> </html>
说明:用struts2实现上传功能已经完成,但是当表单中输入汉字的时候会出现乱码现象,如下图:
解决的方法实在struts添加constant属性:<constant name="struts.i18n.encoding" value="gbk">
</constant>
<constant name="struts.multipart.saveDir" value="c:\"></constant>。修改之后如图:
功能:实现多个文件的上传,使用的是List列表来实现。
四、修改UploadAction.java文件:
package com.test.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UploadAction extends ActionSupport { private String username; private String password; private List<File> file; private List<String> fileFileName; private List<String> fileContentType; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public List<File> getFile() { return file; } public void setFile(List<File> file) { this.file = file; } public List<String> getFileFileName() { return fileFileName; } public void setFileFileName(List<String> fileFileName) { this.fileFileName = fileFileName; } public List<String> getFileContentType() { return fileContentType; } public void setFileContentType(List<String> fileContentType) { this.fileContentType = fileContentType; } @Override public String execute() throws Exception { for(int i = 0 ; i < file.size() ; ++i){ InputStream is = new FileInputStream(file.get(i)); String root = ServletActionContext.getRequest().getRealPath("/upload"); File destFile = new File(root,this.getFileFileName().get(i)); 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; } }
五、修改一下文件上传的页面upload.jsp,再添加两个上传的控件:
<body> <s:form action="upload" theme="simple" enctype="multipart/form-data" method="post"> <table align="center" width="40%" border="1"> <tr> <td>username </td> <td> <s:textfield name="username" ></s:textfield> </td> </tr> <tr><td>password</td> <td> <s:password name="password" ></s:password> </td> </tr> <tr><td>file1</td> <td> <s:file name="file"></s:file> </td> </tr> <tr><td>file2</td> <td> <s:file name="file"></s:file> </td> </tr> <tr><td>file3</td> <td> <s:file name="file"></s:file> </td> </tr> <tr><td><s:submit value=" submit "></s:submit></td> <td> <s:reset value=" reset "></s:reset> </td> </tr> </table> </s:form> </body>
显示效果如图:
发表评论
-
struts2学习笔记十九(第19讲.Struts2深入探索 续)
2013-01-31 01:26 829Struts2应用开发详解 第十九讲 Struts2 深入 ... -
struts2学习笔记十八(第18讲.Struts2深入探索)
2013-01-26 00:23 8301、在src目录下创建属性文件名struts.propert ... -
struts2学习笔记十七(第17讲.Struts2的国际化续)
2012-06-01 00:46 1262struts2的国际化: 1.页面的国际化,也就是jsp的国际 ... -
struts2学习笔记十六(第16讲.Struts2的国际化)
2012-05-24 23:35 854struts2学习笔记十六(第16讲.Struts2的国际化) ... -
struts2学习笔记十五(第15讲.Struts2的文件上传和下载续三)
2011-02-11 16:56 948Struts2的文件上传和下载续三 功能:用户可以自定义上传文 ... -
struts2学习笔记十三(第13讲.Struts2的文件上传和下载续)
2011-01-19 18:04 987Struts2的文件上传和下载续 接上面未完成的功能。 一、首 ... -
struts2学习笔记十二(第12讲.Struts2的文件上传和下载)
2011-01-18 14:57 1352Struts2的文件上传和下载 ... -
struts2学习笔记十一(第11讲.Struts2的核心 拦截器续)
2011-01-14 16:33 1054Struts2的核心 拦截器续 说明:拦截器的主要作用就是拦截 ... -
struts2学习笔记十(第10讲.Struts2的核心 拦截器)
2011-01-13 17:47 1003Struts2的核心 拦截器 一、修改RegisterAct ... -
struts2学习笔记九(第9讲.Struts2的校验框架 续)
2011-01-12 18:11 1115Struts2的校验框架 续 struts2同样支持客户端的 ... -
struts2学习笔记八(第8讲.Struts2的校验框架)
2011-01-12 15:44 959第8讲.Struts2的校验框架 之前的验证方式是stru ... -
struts2学习笔记七(第7讲.Struts2的输入校验续二)
2011-01-11 18:07 1085Struts2的输入校验续二 主要介绍addActionErr ... -
struts2学习笔记六(第6讲.Struts2的输入校验续一)
2011-01-10 14:32 1260Struts2的输入校验续一 说明: 遇到类型转换错误的时候 ... -
struts2学习笔记五(第5讲.Struts2的输入校验)
2011-01-07 18:36 1072Struts2的输入校验 数据校验是建立在类型转换的基础之上的 ... -
struts2学习笔记四(第4讲.Struts2的类型转换续)
2011-01-06 23:25 1066struts2中的局部类型转换 新的需求:用户需要同时增加三 ... -
struts2学习笔记三(第3讲.Struts2的类型转换)
2011-01-05 17:31 1095struts2中的局部类型转换 其中一个主要的就是使用逗号将 ... -
struts2学习笔记二(第2讲.Struts2入门与配置续)
2011-01-05 16:36 966接上面未完成的功能:判断输入的用户名和密码是否正确。 一、创建 ... -
struts2学习笔记一(第1讲.Struts2入门与配置)
2011-01-05 00:12 1404struts2学习笔记一(第1讲.Struts2入门与配置) ...
相关推荐
本学习笔记将对Struts1和Struts2进行详细解析。 **Struts1简介** Struts1是早期流行的MVC框架,它的核心是ActionServlet,负责处理HTTP请求,并通过ActionForm对象收集表单数据,然后调用Action类的方法进行业务...
### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” > “New” > “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...
Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...
Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...
以上就是Struts2学习笔记中的主要内容,通过这些知识点的学习,开发者能够熟练地搭建和使用Struts2框架,构建高效、稳定的Web应用。同时,理解并掌握这些概念有助于进一步探索Struts2的高级特性,如拦截器、插件系统...
在"Struts2 Basic 14_01 学习笔记"中,我们可以期待了解到Struts2的基础知识,以及如何将它与Spring框架集成,这通常被称为SSH(Struts2 + Spring + Hibernate)集成。SSH是一种常见的Java EE开发模式,用于处理业务...
目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................
### 牛人的Spring学习笔记,非常适合初学者 #### 第一课:面向抽象编程 面向抽象编程是一种编程思想,强调在程序设计过程中通过定义抽象层来分离业务逻辑与具体实现细节。这种方式有助于提高软件的可维护性和扩展...
**JSP完全学习笔记概述** JSP(JavaServer Pages)是一种动态网页技术,它结合了HTML、Java代码和脚本语言,使得开发者可以方便地创建交互式的Web应用程序。本学习笔记全面涵盖了JSP的关键概念、核心语法、常用标签...
### Spring2.5 学习笔记知识点概览 #### 第一课:面向抽象编程 - **概念理解**:面向抽象编程是一种设计模式,其核心思想是通过定义接口或抽象类来实现程序结构的设计,使具体实现与接口分离,增强系统的灵活性和...
{12.11.2}intersect与minus}{166}{subsection.12.11.2} {12.11.3}join}{166}{subsection.12.11.3} {12.11.3.1}cross join}{166}{subsubsection.12.11.3.1} {12.11.3.2}inner join}{167}{subsubsection.12.11.3.2...
9. **Struts和Struts2**:Struts是基于MVC设计模式的JavaWeb框架,Struts2是其升级版本,增加了更多功能和灵活性,如拦截器和插件系统。 10. **JSF(JavaServer Faces)**:JSF是另一种JavaWeb UI框架,它提供组件...
### Spring 2.5 学习笔记知识点梳理 #### 第一课:面向抽象编程 - **定义**:面向抽象编程是一种编程范式,强调通过抽象类或接口来设计程序结构,减少对具体实现的依赖。 - **优势**: - 提高了系统的可维护性与...
### Java学习笔记知识点详解 #### 一、Java平台概述 - **J2SE (Java Platform Standard Edition)**: 标准版Java开发平台,主要用于桌面应用软件的开发。 - **J2EE (Java Platform Enterprise Edition)**: 企业版...
### WebWork学习笔记知识点 #### 一、WebWork框架简介 - **定义**: WebWork是一个由OpenSymphony组织开发的MVC(Model-View-Controller)框架,专注于组件化和代码重用,适用于J2EE应用程序开发。 - **最新版本**:...
【SpringMVC基础概念】 ...通过这些基础知识的学习,你可以理解SpringMVC的核心概念,为后续的高级应用,如集合类型参数绑定、数据回显、文件上传、JSON交互、RESTful支持和拦截器的使用奠定坚实的基础。
以“%”开头,[第几个数值$][flags][宽度][.精确度][格式] printf()的引入是为了照顾c语言程序员的感情需要 格式化输出 Formatter;格式化输入 Scanner;正则表达式 输出格式控制: 转义符: \ddd 1到3位8...
#### 十四、简单的加法运算程序 ```java public class SimpleAddition { public static void main(String[] args) { int a = 5; int b = 10; int sum = a + b; System.out.println("The sum is: " + sum); } ...