`
raymond.chen
  • 浏览: 1441330 次
  • 性别: 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架构设计与实现原理

    本书《Struts2技术内幕——深入解析Struts2架构设计与实现原理》结合提供的《struts2基础.chm》资料,为我们提供了深入理解Struts2内部机制的机会。 首先,Struts2的核心在于它的拦截器(Interceptor)机制。拦截器...

    基于Struts2的班级网站

    总的来说,这个基于Struts2的班级网站项目涵盖了Struts2框架的多个关键方面,对于初学者来说,这是一个很好的实践平台,可以深入理解MVC架构、Action、拦截器、结果类型、文件上传以及用户状态管理等核心概念。...

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)

    标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...

    struts2常用的13个jar包

    9. **commons-fileupload-1.3.jar**:Apache Commons FileUpload库专门处理HTTP请求中的多部分文件上传,Struts2使用它来支持用户上传文件的功能。 10. **commons-logging-1.1.3.jar**:Apache Commons Logging是...

    java struts2 上传包含jad等文件类型

    总的来说,要实现Java Struts2框架下上传jad等文件类型,我们需要配置Struts2的文件上传支持,编写处理文件上传的Action类,以及可能需要解析和处理jad文件的额外逻辑。以上各步骤都需要对Struts2框架、文件上传机制...

    struts文件上传下载

    4. **Interceptor拦截器**:Struts2的拦截器可以用来实现通用的文件上传和下载逻辑,例如限制上传大小,记录日志等。 5. **安全性**:文件上传可能导致安全问题,如代码注入、跨站脚本攻击(XSS)。因此,确保对...

    struts2讲义,讲解struts2的框架

    6. `Commons-fileupload`:处理HTTP多部分文件上传的库,通常与Struts2一起使用。 在集成第三方框架时,比如Spring,需要额外引入如`struts2-spring-plugin-2.x.x.jar`这样的插件JAR文件。 Struts2的启动配置与...

    struts2用到的各种架包

    Struts2是一个强大的Java EE(Enterprise Edition)框架,主要用于构建基于MVC(Model-View-Controller)模式的Web应用程序。这个框架提供了丰富的功能,包括动作调度、数据绑定、异常处理、国际化支持等,大大简化...

    ACCP7使用Struts2开发租房系统之二

    Chapter09会讲解如何使用Struts2实现文件上传和下载,包括处理多文件上传、设置上传大小限制、文件类型检查等。 **Chapter10:Struts2国际化** 国际化的支持对于一个大型系统来说是必要的,尤其是租房系统可能面向...

    struts拦截器+文件上传

    4. **文件上传API**:在Struts2中,通常使用`CommonsFileUpload`库来处理文件上传。这个库提供了`FileItem`接口,可以获取上传文件的信息,并将其保存到服务器的指定位置。 5. **安全注意事项**: - **防止文件...

    struts2必须包

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

    原创struts2讲义2.pdf

    文件上传是Web应用中常见的一项功能,Struts2提供了简单易用的方式来实现这一需求。 ##### 4.3 高级表单处理技巧 在表单处理方面,Struts2支持多种高级技巧,如自动填充表单字段、动态生成表单元素等。 ##### 4.4...

    struts2自学文档

    - **拦截器**:Struts2的核心之一,通过拦截器可以实现诸如文件上传、输入验证等功能。 - **处理与分配流程**: - **前端请求**:用户发起的HTTP请求。 - **StrutsPrepareAndExecuteFilter**:处理请求的第一道...

    struts2 Interceptor拦截器

    Struts2提供了许多内置的Interceptor,它们覆盖了常见的Web应用程序需求,如参数绑定、类型转换、输入验证、文件上传等。这些内置的Interceptor可以帮助开发者快速构建功能丰富的应用程序,而无需从头开始实现这些...

    Struts2 apps

    2. **文件上传下载**:展示了如何使用Struts2处理文件上传和下载,包括文件大小限制、类型检查等。 3. **拦截器实战**:通过自定义拦截器,可以实现如登录检查、权限控制等功能。 4. **Ajax支持**:Struts2提供了对...

    Struts2框架基础 一

    ### Struts2框架基础知识 #### 一、Struts2框架简介 Struts2是一个基于Java的开源Web应用程序...此外,Struts2还提供了丰富的特性支持,如表单验证、文件上传、AJAX支持等,使得开发者能够构建更为复杂的应用程序。

    struts2基本(最小)jar包

    这些JAR文件是构建基于Struts2的应用的基础,缺少任何一个都可能导致应用无法正常运行。以下是对这些核心组件的详细介绍: 1. **.struts2-core.jar**:这是Struts2框架的核心库,包含Action、Result、Interceptor等...

    配置struts2需要的资源包

    在开发基于Struts2的应用时,正确配置和选用所需的资源包至关重要,这能确保项目的稳定性和高效性。在这个“配置struts2需要的资源包”的主题中,我们将详细探讨Struts2的核心组件、依赖库以及如何精简不必要的包。 ...

    Struts2框架

    拦截器是Struts2的一大特色,可以实现如日志、权限检查、事务管理等通用功能,并且可以按需组合使用。结果类型则是决定Action执行完成后如何跳转到视图页面。 Struts2的Action支持多种结果类型,包括JSP、...

Global site tag (gtag.js) - Google Analytics