`
木头马
  • 浏览: 1287 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

portlet 多文件上传 (记录一下,备忘)

 
阅读更多

   由于项目的上的需要,需要在portal 页面上上传多个文件,而前面的实现都只是上传一个文件,使用的是spring提供的 MultipartFile。项目中使用的是spring2.5, 在http://static.springsource.org/spring/docs/1.2.x/reference/mvc.html上面也没找到上传多个文件的实现例子。

 

 下面先介绍下上传单个文件的实现:

在项目中定义的bean为:

<bean id="portletMultipartResolver"
     class="org.springframework.web.portlet.multipart.CommonsPortletMultipartResolver">
 
        <property name="maxUploadSize" value="10000000"/>
 </bean>

 

使用的controller extends SimpleFormController  具体的控制器配置为

<beanid="sendMailController"class="com.ge.oilandgas.smartportal.quote.controller.SendMailController">

<propertyname="mailSender"ref="mailSender"/>

       

<property name="commandClass" value="com.ge.oilandgas.smartportal.quote.contextbean.AttachmentFileUploadBen"/>   

<propertyname="utility"ref="utility"/>

           

</bean>

在代码中的实现为

publicvoid onSubmitAction( ActionRequest request,

                  ActionResponse response,

              Object command,

              BindException errors) throws Exception {

// cast the bean

AttachmentFileUploadBean bean = (AttachmentFileUploadBean) command;

// get the attached file

MultipartFile attachedfile = bean.getAttachmentFile();  //这样就能得到上传的文件的信息了

}

 

多个文件上传的实现方法:

上网查找了不少资料,最终找到了一篇外国的文章:

http://dhruba.name/2008/12/27/implementing-single-and-multiple-file-multipart-uploads-using-spring-25/   里面讲的很清楚。但是我这里没有使用上面那篇文章的方法,不过方式差不多。

1:首先让contrller extends AbstractController  

2:在其处理action请求的方法中  添加一个获取多文件的方法:

protectedvoid handleActionRequestInternal(ActionRequest request,

                  ActionResponse response) throws Exception {

 public Map<String,MultipartFile> getAttachmentsMap(ActionRequest request ) throws Exception {
   Map<String,MultipartFile> MailAttachFilesMap = new HashMap<String,MultipartFile>();
   if (request instanceof MultipartActionRequest) {
    
    logger.debug("==================MulitiPart Request====================");
    MultipartActionRequest multipartRequest = (
MultipartActionRequest) request;
    Map files = multipartRequest.getFileMap();
    String fileName = "";
    String key = "";
    MultipartFile attachedFile = null;
    if (files!=null && files.isEmpty() != true && files.size()>0 ) {
    
     for (Iterator fileMapIter = files.keySet().iterator(); fileMapIter.hasNext();)
     { 
      key = (String) fileMapIter.next();
      attachedFile = (MultipartFile)(multipartRequest.getFileMap().get(key));
      fileName = attachedFile.getOriginalFilename();
      MailAttachFilesMap.put(fileName, attachedFile);
      System.out.println("===========key======="+key+"            ==================== "+fileName);
     }
    }
   }

   return MailAttachFilesMap;
  }

}

主要是将 request转换为:MultipartActionRequest

 

分享到:
评论

相关推荐

    jboss portlet实现文件上传小项目

    【JBoss Portlet实现文件上传小项目】 在Java企业级应用开发中,JBoss Portal是一个常用的portlet容器,它提供了一个可扩展的平台来构建、部署和管理web应用程序,特别是portlet应用。Portlets是portlet容器中的...

    文件上载Portlet源代码

    文件上载Portlet是Web应用程序中的一个组件,主要用于在用户界面上接收并处理用户上传的文件。Portlet是Java Portlet API定义的一种可重用、可组合的Web部件,它在门户环境中运行,如Liferay、Pluto等。在这个特定的...

    portlet上传文件

    内含源码,经IBM websphere portal6测试,供大家参考

    portlet-api-1.0.jar,portlet的API,portlet.jar文件

    portlet-api-1.0.jar,portlet的API,portlet.jar文件

    portlet源码,portlet Filter

    在portlet开发中,`META-INF`目录通常包含portlet的元数据,如`MANIFEST.MF`文件,其中描述了portlet的元信息和依赖库。而`javax`目录可能包含了portlet API的相关类库,这些都是开发portlet应用所必需的。 总的来...

    portlet入门介绍

    6. 打包和部署:将portlet打包成WAR文件,上传到portal服务器进行正式部署。 五、学习资源 对于初学者,可以从以下资源入手学习portlet开发: 1. Java Portlet API文档:官方文档提供了详细的API参考和使用指南。...

    portlet开发参考手册

    Portlet开发参考手册是针对portlet技术的一份详细指南,它为开发者提供了全面的指导,以帮助他们构建和集成portlet到Web门户中。Portlet是一种可重用的Web组件,它们在门户环境中运行,允许用户自定义门户界面,展示...

    Stringbeans3.5 加载外部portlet应用

    3. **部署portlet**:将portlet的WAR文件上传到Stringbeans的部署目录,或者通过管理界面进行部署。在某些情况下,可能需要手动复制必要的jar包到Stringbeans的类路径中。 4. **门户配置**:在Stringbeans的门户...

    Portlet标准汉化手册

    Portlet的生命周期包括初始化、渲染、处理用户动作等多个阶段,这些阶段由Portlet Container管理。用户与Portlet的交互通过HTTP请求/响应模型进行,例如,点击链接或提交表单会触发特定Portlet的动作。 **3. ...

    portlet 开发

    Portlet部署通常涉及到打包portlet为WAR文件,并将其上传到门户服务器的部署目录。portlet的配置信息通常包含在部署描述符(如portlet.xml)中。 11. **portlet开发工具**: 开发portlet可以使用Eclipse、...

    使用spring mvc portlet 3.0开发IBM WebSphere Portlet应用

    总结一下,使用Spring MVC Portlet 3.0开发IBM WebSphere Portlet应用涉及的主要知识点有: - Portlet 3.0标准和JSR 362 - Spring MVC Portlet框架的原理与应用 - IBM WebSphere Portal的环境配置与部署 - Spring ...

    在JetSpeed中开发portlet项目

    1. Portlet配置:在portlet.xml文件中定义portlet的元数据,如portlet名称、标题、属性等。 2. JSP页面:portlet视图通常由JSP页面呈现,通过`renderRequest`和`renderResponse`对象传递数据。 3. 表单处理:对于...

    Portlet HelloWorld Pluto2 工程代码

    Portlet与传统的Web应用不同,它并不处理整个页面,而是与多个其他Portlets一起协作构建一个完整的Web页面。每个Portlet有自己的生命周期,包括初始化、渲染、事件处理和动作请求等阶段。在"HelloWorld"工程中,我们...

    eclipse+tomcat开发portlet

    在WEB-INF目录下创建portlet.xml文件,它是portlet的元数据配置,定义portlet的行为和参数。XML文件中,你需要指定portlet的名称、标题、以及实现的portlet类等信息。这个文件是portlet注册到portlet容器的关键。 ...

    portlet详细例子

    Portlet是一种在门户环境下运行的小型应用程序,它允许在单一的网页界面上集成多个功能模块。这个"portlet详细例子"的资源包显然旨在帮助开发者理解并实践portlet的开发。Portlet技术主要应用于企业级的Web应用,如...

    portlet api

    2. **portlet配置**:portlet可以通过portlet.xml文件进行配置,其中包含了portlet的元数据,如标题、描述、参数设置等。 3. **渲染上下文**:PortletRenderContext对象在渲染阶段传递,包含了portlet渲染所需的上...

    portlet学习资料

    4. **portlet配置**:portlet的配置信息存储在portlet.xml文件中,定义portlet的元数据和初始化参数。 二、IBM Portlet开发 IBM作为Java技术的重要贡献者,其WebSphere Portal产品支持JSR168 portlet的开发。IBM...

    portlet资料

    - Portlet通过portlet容器来管理,容器负责处理用户的请求,提供渲染机制,并协调多个portlet之间的交互。 2. **Portlet规范**: - 提供的文件“portlet-1_0-pfd-spec.pdf”很可能是一个关于Portlet 1.0规范的...

    Portlet

    7. **portlet部署**:portlet通常被打包为一个WAR文件,然后部署到portlet容器中。portlet的配置信息,如portlet.xml,定义了portlet的基本信息和行为。 8. **portlet开发工具**:开发portlet可以使用各种IDE,如...

Global site tag (gtag.js) - Google Analytics