`
raymond.chen
  • 浏览: 1425443 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于Struts2的通用文件上传实现(二)

JSP 
阅读更多

四、Action配置

<action name="attachList" class="attachAction">
	<result name="success" type="tiles">attach.list</result>
</action>

<action name="upload" class="attachAction">
	<result name="input" type="tiles">attach.add</result>
	<result name="success" type="tiles">window.close</result>
</action>

<action name="attachDelete" class="attachAction">
	<result name="success" type="redirect">${url}</result>
</action>

<action name="download" class="attachAction">
	<result name="success" type="stream">
		<param name="contentType">application/octet-stream</param>
		<param name="contentDisposition">attachment;filename=${uploadFileName}</param>
		<param name="bufferSize">4096</param>
		<param name="inputName">targetFile</param>
	</result>
</action>

 

五、列表JSP页面源代码

<cjm:toolBar>
	<cjm:toolBarButton title="上传附件" width="80" onclick="openUploadWindow('upload.action?attach.entityName=%{attach.entityName}&attach.entityId=%{attach.entityId}&attach.refName=%{attach.refName}&attach.path=%{attach.path}&allowTypes=%{allowTypes}&maxSize=%{maxSize}')" imgSrc="images/toolbar/add.gif"/>
	<cjm:toolBarButton title="删除" onclick="deleteFormRow(document.all['frmAttachList'], 'chk_o_', 'attachDelete.action')" imgSrc="images/toolbar/delete.gif"/>
</cjm:toolBar>
	
<s:form name="frmAttachList">
	<s:hidden name="attach.path" value="%{attach.path}"/>
	<s:hidden name="attach.entityName" value="%{attach.entityName}"/>
	<s:hidden name="attach.entityId" value="%{attach.entityId}"/>
	<s:hidden name="attach.refName" value="%{attach.refName}"/>
	<s:hidden name="allowTypes" value="%{allowTypes}"/>
	<s:hidden name="maxSize" value="%{maxSize}"/>
	
	<table border="0" cellspacing="0" cellpadding="2" class="list" align="center">
		<tr class="top" height="25">
	    	<td width="25"><input type="checkbox" onclick="checkAll(this)"></td>
	    	<td>附件名称</td>
	    	<td width="100">文件大小</td>
	    	<td width="150">文件类型</td>
	    	<td width="130">创建时间</td>
	    	<td width="50">下载</td>
	  	</tr>
	  	
	  	<s:iterator value="attachList" id="attach" status="st">
	  		<tr <s:if test="#st.odd">class="bg1"</s:if><s:else>class="bg2"</s:else> >
	  			<td align="center"><input type="checkbox" name="chk_o_<s:property value='#st.count'/>" value="<s:property value='#attach.id'/>"></td>
	  			<td align="left"> <s:property value="#attach.name"/></td>
	  			<td align="center"> <s:property value="#attach.fileSize"/> K</td>
	  			<td align="center"> <s:property value="#attach.contentType"/></td>
	  			<td align="center"> <s:date name="#attach.createDate" format="yyyy-MM-dd HH:mm"/></td>
	  			<td align="center"><a href="download.action?attach.id=<s:property value="#attach.id"/>">下载</a></td>
	  		</tr>
	  	</s:iterator>
	</table>
</s:form>

 

六、附件添加JSP页面源代码

<s:form action="upload" name="frmUpload" method="post" enctype="multipart/form-data">
	<s:hidden name="attach.path" value="%{attach.path}"/>
	<s:hidden name="attach.entityName" value="%{attach.entityName}"/>
	<s:hidden name="attach.entityId" value="%{attach.entityId}"/>
	<s:hidden name="attach.refName" value="%{attach.refName}"/>
	<s:hidden name="allowTypes" value="%{allowTypes}"/>
	<s:hidden name="maxSize" value="%{maxSize}"/>
	
	<br>
	<s:file name="upload" label="选择文件" size="55" cdata=" dataType='Require' msg='必填项'"/>
</s:form>

 

七、范例

attachList.action?attach.entityName=Organization&attach.entityId=${org.orgId}&attach.refName=attachment&attach.path=/sim&allowTypes=txt&maxSize=10485760

  

4
0
分享到:
评论
2 楼 raymond.chen 2008-10-25  
可以到我的博客 http://chenjumin.iteye.com 查阅《基于Struts2的通用文件上传实现》这篇文章的一、二两章,从中你可以找到答案。看download这个Action的配置和源代码就知道了。
1 楼 wiely 2008-10-25  
怎么实现下载列表呢?比如说是在一个界面有一个下载列表,用户可以选择某个进行下载。

相关推荐

    struts2必须包

    struts2必须包,commons-fileupload-1.3.1.jar 实现文件上传包,commons-io-2.2.jar 用来处理IO的一些工具类包,commons-lang3-3.1.jar 提供一些基础的、通用的操作和处理,如自动生成toString()的结果、自动实现...

    Struts2 in action中文版

    3.5 案例研究:文件上传 56 3.5.1 通过struts-default包获得内建的支持 56 3.5.2 fileUpload拦截器做什么 57 3.5.3 Struts 2公文包示例代码研究 58 3.6 小结 60 第4章 使用拦截器追加工作流 61 4.1 为什么要拦截...

    传智播客黎活明老师讲解的Struts2的PPT

    Struts2是一个基于MVC设计模式的Web应用框架,它是在WebWork2的基础上发展起来的。与Struts1相比,Struts2具有诸多优势,使其成为开发者更优选的框架之一。 首先,Struts2采取了非侵入式设计,与Servlet API和...

    深入浅出Struts2(附源码)

    作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...

    struts2学习笔记一

    - **上传下载**:支持文件上传和下载功能,简化了处理文件上传的复杂性。 - **拦截器**:通过拦截器链,可以添加额外的行为,如日志、事务管理等,无需修改Action代码。 - **国际化**:提供了易于实现的国际化...

    详细的struts2知识

    你需要导入一系列的jar包,如`struts2-core`、`xwork`、`ognl`、`freemarker`、`commons-logging`、`commons-fileupload`和`commons-io`等,这些库提供了核心功能、对象导航、模板引擎、日志处理、文件上传等功能。...

    struts2.0第一讲

    例如,workflow拦截器处理业务流程,validation拦截器进行数据校验,而文件上传功能可以通过专门的拦截器实现。 3. **Action**:Action是业务逻辑控制器,它实现了用户的特定操作。当请求经过拦截器链后,会回调...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    如数据类型转换、文件上传和下载、Struts2应用的安全性、调试与性能分析、FreeMarker、Velocily、Ajax,等等。跟随作者一道深入Struts2。聆听大量来之不易的经验之谈。你对Struts2开发框架的理解和应用水平都将更上...

    SSHF备忘之依赖包(struts2+spring2.5+hibernate+freemarker)

    1. **Struts2**:Struts2是基于Apache Jakarta Struts的下一代Web应用框架,它提供了一种更灵活和强大的MVC架构。依赖包包括`struts2-core-2.0.11.jar`和`struts2-spring-plugin-2.0.11.jar`,后者用于将Struts2与...

    J2EE企业级项目开发-3期(KC007) 8.3 Struts之拦截器使用技巧考试.doc

    - g) `fileUpload`拦截器:处理文件上传请求。 - k) `workflow`拦截器:基于业务流程控制的拦截器。 - l) `servletConfig`拦截器:访问Servlet的配置信息。 - m) `timer`拦截器:记录Action执行时间。 - n) `...

    java+mysql实现的代码分享网(所有源码已开源,效果可看网址:www.admintwo.com)

    同时也实现了文件上传(基于struts2的文件上传功能)。 4、代码下载,下载功能会判断用户是否下载过该代码,若下载过则不扣积分。下载功能也是基于struts2的下载模块实现的。 5、代码评论,该功能是我仿照qq空间评论...

    SSH2搭建说明配置

    - `commons-fileupload.jar`:实现了文件上传功能。 - `commons-io.jar`:提供输入输出操作,支持文件上传。 - `commons-logging.jar`:通用的日志处理库,用于各种日志框架的统一接口。 - `commons-validator....

    公司考勤系统设计与实现毕业论文.doc

    本系统基于B/S模式,采用Struts2框架、Spring框架、JavaBean、Hibernate框架和JSP技术,以MyEclipse Professional 2014作为系统开发平台,通过Oracle 10g管理数据库系统来设计和实现OA办公自动化系统。该系统主要...

    SSH2 配置所必须的包

    SSH2配置过程中,涉及到多个Java库,这些库是构建基于SSH2(Struts2、Spring、Hibernate2)的Web应用程序的基础。首先,我们来看SSH2的核心组件: 1. **Struts2**:这是一个用于构建MVC(Model-View-Controller)...

    SSM整合jar包详解

    其他如`commons-lang3-3.1.jar`提供对Java标准库的扩展,`commons-fileupload-1.2.2.jar`支持文件上传,而`commons-logging-1.1.1.jar`则是一个通用的日志记录包。 接下来是Spring框架。Spring3.2.0版的核心组件...

    SSH项目1

    4. 文件上传/下载:Struts支持文件的上传和下载操作。 5. 数据验证:通过拦截器实现表单数据的验证。 6. OGNL(Object-Graph Navigation Language):用于表达式的处理,如在JSP中动态获取和设置对象属性。 7. 数据...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...

    WEB电子杂志项目文档

    - 用户可以上传电子书内容,文件上传的核心功能由`doUpload`方法处理。文件可能包括SWF(Flash)文件和图片,根据用户设置的参数如`adaptive`(自适应图像大小调整)和`compressRate`(压缩比例)进行处理。 5. **...

Global site tag (gtag.js) - Google Analytics