- 浏览: 830118 次
- 性别:
- 来自: 北京、四川
文章分类
最新评论
-
sunbeamzheng:
总结的很好,好好看看。 拷贝问题确实很需要注意,特别是影不影响 ...
java深拷贝与浅拷贝 -
xmh8023:
...
获取POST数据的值 -
xmh8023:
我访问别的服务器怎么办?急求
获取POST数据的值 -
xmh8023:
String urlString="http://l ...
获取POST数据的值 -
lv12312:
Tomcat 7的老版本么?有bug的,https://iss ...
JMX问题
这两天看了一下struts2.0的上传,实现一个简单的例子很简单,我是从strtus2.0自带的一个例子看的,也没有经过修改就可以实现上传了,但下载还是出现了一些问题。最开始接触的时候出现了一个问题,也就是包的问题或者说是配置的问题,在web.xml里面仅仅是配置了struts的映射,导致每次启动的时候说找不着一个东西,然后又发现包存在问题,因为使用的是myEclipse,在里面选的加入自定义的一个userLibery库,貌似这样是不行,以前也碰到这种情况,那个时候还不清楚,像这一次,我把那几个需要的包直接添加进去之后就可以运行了。其实也有可能触发此问题的是和其它的一些包起冲突,没有去证明这个推断的正确性。
下面就说一下怎么实现这上传的功能吧。
首先是把包给加入进去,参考了一下网上的例子,因此就只加入了一下几个包
web.xml的配置如下:
struts.xml的配置如下:
struts-fileupload.xml配置如下:
fileUploadAction.java如下:
upload.jsp如下:
upload-success.jsp如下:
这样单一的上传文件就好了。
下面是多文件上传的代码,MultipleFileUploadUsingListAction.java代码如下:
multipleFileUploadUsingList.jsp如下:
multipleFileUploadUsingList-success.jsp如下:
这样就可以了。
现在还存在着一些问题,不知道怎么去限制文件上传类型,确定上传目录,限制上传的大小这个还不知道怎么设置,在相应的action里面做如下配置就是不行,也不知道为啥。
不知道是不是和tomcat6有关。
下面就说一下怎么实现这上传的功能吧。
首先是把包给加入进去,参考了一下网上的例子,因此就只加入了一下几个包
xwork-2.04.jar commons-loggin-1.0.4.jar ognl-2.6.11.jar struts2-core-1.011.jar commons-fileupload-1.1.1.jar commons-io-1.1.jar
web.xml的配置如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" 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> <filter-name>struts-cleanup</filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>default.jsp</welcome-file> <welcome-file>index.html</welcome-file> </welcome-file-list> </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"> <!-- START SNIPPET: xworkSample --> <struts> <include file="struts-fileupload.xml" /> </struts>
struts-fileupload.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="fileupload" extends="struts-default" namespace="/fileupload"> <action name="upload" class="com.struts.fileupload.FileUploadAction" method="input"> <result>upload.jsp</result> </action> <action name="doUpload" class="com.struts.fileupload.FileUploadAction" method="upload"> <result name="input">upload.jsp</result> <result>upload-success.jsp</result> </action> <action name="multipleUploadUsingList"> <interceptor-ref name="fileUpload"> <!-- 配置允许上传的文件类型,多个用","分隔 --> <param name="allowedTypes"> image/bmp,image/png,image/gif,image/jpeg,image/jpg ,image/x-png, image/pjpeg </param> <!-- 配置允许上传的文件大小,单位字节 --> <param name="maximumSize">1024000000</param> </interceptor-ref> <param name="savePath">/temp</param> <result>multipleUploadUsingList.jsp</result> </action> <action name="doMultipleUploadUsingList" class="com.struts.fileupload.MultipleFileUploadUsingListAction" method="upload"> <result>multipleUploadUsingList-success.jsp</result> </action> <action name="multipleUploadUsingArray"> <result>multipleUploadUsingArray.jsp</result> </action> <action name="doMultipleUploadUsingArray" class="com.struts.fileupload.MultipleFileUploadUsingArrayAction" method="upload"> <result>multipleUploadUsingArray-success.jsp</result> </action> </package> </struts>
fileUploadAction.java如下:
package com.struts.fileupload; import java.io.File; import com.opensymphony.xwork2.ActionSupport; /** * Show case File Upload example's action. <code>FileUploadAction</code> * */ public class FileUploadAction extends ActionSupport { private static final long serialVersionUID = 5156288255337069381L; private String contentType; private File upload; private String fileName; private String caption; // since we are using <s:file name="upload" .../> the file name will be // obtained through getter/setter of <file-tag-name>FileName public String getUploadFileName() { return fileName; } public void setUploadFileName(String fileName) { this.fileName = fileName; } // since we are using <s:file name="upload" ... /> the content type will be // obtained through getter/setter of <file-tag-name>ContentType public String getUploadContentType() { return contentType; } public void setUploadContentType(String contentType) { this.contentType = contentType; } // since we are using <s:file name="upload" ... /> the File itself will be // obtained through getter/setter of <file-tag-name> public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String getCaption() { return caption; } public void setCaption(String caption) { this.caption = caption; } public String input() throws Exception { return SUCCESS; } public String upload() throws Exception { return SUCCESS; } }
upload.jsp如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Showcase</title> </head> <body> <h1>Fileupload sample</h1> <s:actionerror /> <s:fielderror /> <s:form action="doUpload" method="POST" enctype="multipart/form-data"> <s:fielderror></s:fielderror> <s:file name="upload" label="File"/> <s:textfield name="caption" label="Caption"/> <s:submit /> </s:form> </body> </html>
upload-success.jsp如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Showcase</title> </head> <body> <h1>Fileupload sample</h1> <ul> <li>ContentType: <s:property value="uploadContentType" /></li> <li>FileName: <s:property value="uploadFileName" /></li> <li>File: <s:property value="upload" /></li> <li>Caption:<s:property value="caption" /></li> </ul> </body> </html>
这样单一的上传文件就好了。
下面是多文件上传的代码,MultipleFileUploadUsingListAction.java代码如下:
package com.struts.fileupload; import java.io.File; import java.util.ArrayList; import java.util.List; import com.opensymphony.xwork2.ActionSupport; /** * Showcase action - multiple file upload using List * @version $Date: 2006-11-23 12:31:52 -0500 (Thu, 23 Nov 2006) $ $Id: MultipleFileUploadUsingListAction.java 478625 2006-11-23 17:31:52Z wsmoak $ */ public class MultipleFileUploadUsingListAction extends ActionSupport { private List<File> uploads = new ArrayList<File>(); private List<String> uploadFileNames = new ArrayList<String>(); private List<String> uploadContentTypes = new ArrayList<String>(); public List<File> getUpload() { return this.uploads; } public void setUpload(List<File> uploads) { this.uploads = uploads; } public List<String> getUploadFileName() { return this.uploadFileNames; } public void setUploadFileName(List<String> uploadFileNames) { this.uploadFileNames = uploadFileNames; } public List<String> getUploadContentType() { return this.uploadContentTypes; } public void setUploadContentType(List<String> contentTypes) { this.uploadContentTypes = contentTypes; } public String upload() throws Exception { System.out.println("\n\n upload1"); System.out.println("files:"); for (File u: uploads) { System.out.println("*** "+u+"\t"+u.length()); } System.out.println("filenames:"); for (String n: uploadFileNames) { System.out.println("*** "+n); } System.out.println("content types:"); for (String c: uploadContentTypes) { System.out.println("*** "+c); } System.out.println("\n\n"); return SUCCESS; } }
multipleFileUploadUsingList.jsp如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Showcase - fileupload - multiple fileupload using List</title> </head> <body> <s:form action="doMultipleUploadUsingList" method="POST" enctype="multipart/form-data"> <s:file label="File (1)" name="upload" /> <s:file label="File (2)" name="upload" /> <s:file label="FIle (3)" name="upload" /> <s:submit /> </s:form> </body> </html>
multipleFileUploadUsingList-success.jsp如下:
<%@taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Insert title here</title> </head> <body> <table border="1"> <s:iterator value="upload" status="stat"> <tr> <td>File <s:property value="%{#stat.index}" /></td> <td><s:property value="%{upload[#stat.index]}" /></td> </tr> </s:iterator> </table> <table border="1"> <s:iterator value="uploadFileName" status="stat"> <tr> <td>File Name <s:property value="%{#stat.index}" /></td> <td><s:property value="%{uploadFileName[#stat.index]}" /></td> </tr> </s:iterator> </table> <table border="1"> <s:iterator value="uploadContentType" status="stat"> <tr> <td>Content Type <s:property value="%{#stat.index}" /></td> <td><s:property value="%{uploadContentType[#stat.index]}" /></td> </tr> </s:iterator> </table> </body> </html>
这样就可以了。
现在还存在着一些问题,不知道怎么去限制文件上传类型,确定上传目录,限制上传的大小这个还不知道怎么设置,在相应的action里面做如下配置就是不行,也不知道为啥。
<interceptor-ref name="fileUpload"> <!-- 配置允许上传的文件类型,多个用","分隔 --> <param name="allowedTypes"> image/bmp,image/png,image/gif,image/jpeg,image/jpg ,image/x-png, image/pjpeg </param> <!-- 配置允许上传的文件大小,单位字节 --> <param name="maximumSize">1024000000</param> </interceptor-ref>
不知道是不是和tomcat6有关。
- learnStruts2.0.rar (3.3 MB)
- 描述: 上传的功能可以使用,下载的那个功能还缺少images文件下的两个文件
- 下载次数: 241
评论
2 楼
dd350356750
2008-09-22
下载了学习下。放入 了。
“上传的功能可以使用,下载的那个功能还缺少images文件下的两个文件 ”
这句话没听懂。
“上传的功能可以使用,下载的那个功能还缺少images文件下的两个文件 ”
这句话没听懂。
1 楼
vtegymtd888
2008-08-02
发表评论
-
Java并发编程:volatile关键字解析
2015-07-30 11:30 637转:http://www.cnblogs.com/dolp ... -
Java内存模型
2015-07-29 13:55 9161. 概述 多任务和 ... -
自定义classloader
2015-07-29 13:54 692转:http://tiantian911.iteye.com ... -
自定义ClassLoader实现java应用核心逻辑模块热部署
2015-07-29 13:51 1023转:http://blog.csdn.net/zhangda ... -
java classloader原理初探
2015-07-29 10:14 669转:http://www.cnblogs.com/ ... -
Java 内存分配全面浅析
2015-07-29 08:52 609转:http://blog.csdn.net/shimi ... -
http stream
2014-07-29 16:38 1145StringBuilder sb = new String ... -
Tomcat远程调试
2011-04-09 12:33 1062需要在Tomcat中的catalina.bat中添加如下的一行 ... -
用jmx监控多台服务器(tomcat)
2010-09-08 18:25 4577因为需要写一个后台监控服务器的程序,涉及到jmx,也涉 ... -
call cmd /c start 一点疑问
2010-09-01 10:16 2250call "cmd /c start aaa.bat ... -
Windows计划任务之schtasks
2010-08-30 13:21 3596创建:SCHTASKS /Create /RU SYSTEM ... -
ajax返回值中有中文存在的乱码现象
2010-08-27 16:28 1447ajax返回值中有中文存在的乱码现象,解决就加入下面一行代码即 ... -
MIME TYPE
2010-08-26 16:23 7262最近要做需要在页面上放音频的东西,因此需要用到mime typ ... -
JMX问题
2010-08-20 17:20 5507这个问题貌似是启动tomcat之后就获取不到jmx的链接了,不 ... -
Eclipse控制台乱码
2010-08-05 15:18 4894安装了Eclipse,在运行tomcat时,控制台的中文显示乱 ... -
JMX服务端和客户端的代码
2010-07-27 15:37 3575服务端代码如下 package com.rmi; i ... -
JMX连接Tomcat的JMX测试类
2010-07-27 15:33 3301首先是为了使tomcat支持JMX,必须在tomcat的启动项 ... -
JMX的一个链接类
2010-07-27 09:37 1465package com.pachira.oamp.jmxS ... -
java中文转unicode码
2010-07-22 11:04 43412转载地址:http://www.iteye.com/topic ... -
获取POST数据的值
2010-07-21 14:17 9925当method为POST,Content-Type为 ...
相关推荐
Struts2.0简明教程是一系列针对初学者和进阶者的教程,旨在帮助开发者快速理解和掌握Struts2框架的核心概念和技术。这个教程涵盖了从框架的初步安装到实际开发中的常见功能,包括Action、标签(Tag)、转换器...
12.1.2 Struts 2.0与Struts 1.x框架的区别 215 12.2 MyEclipse创建基于Struts 2.0框架的项目 215 12.2.1 下载Struts 2.0开发包 216 12.2.2 创建Struts 2.0项目 216 12.2.3 配置Struts 2.0项目 217 12.2.4 创建Struts...
3. **框架应用**:了解并能熟练使用Struts2.0、Hibernate和Spring框架,这些是JavaWeb开发中常见的MVC框架,能够提高开发效率和代码的可维护性。 4. **MVC模式**:熟悉MVC(Model-View-Controller)开发模式,这种...
Struts框架中Controller角色是由一个中心Servlet类和众多Action类合作扮演的,中心Servlet类为控制器提供中心控制点来初步处理所有的用户请求,并选择一个Action类处理具体业务逻辑。 Struts负责管理用户的请求...
Struts框架中Controller角色是由一个中心Servlet类和众多Action类合作扮演的,中心Servlet类为控制器提供中心控制点来初步处理所有的用户请求,并选择一个Action类处理具体业务逻辑。 Struts负责管理用户的请求...
Struts框架中Controller角色是由一个中心Servlet类和众多Action类合作扮演的,中心Servlet类为控制器提供中心控制点来初步处理所有的用户请求,并选择一个Action类处理具体业务逻辑。 Struts负责管理用户的请求...