`
JSF狂人
  • 浏览: 3716 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

inputFileUpload组件的上传原理以及改进为动态表单多附件上传

阅读更多

因为inputFileUpload这个组件本身不能像h:selectManyCheckbox组件一样以数组的形式表示,

所以在进行多附件上传的时候,通常情况下,页面都会加入N个inputFileUpload组件,但是此时inputFileUpload组件的数量是固定的,不能达到动态表单的效果。

 

难道,就没有一种方法使jsf的动态上传表单达到更完美一些吗?

或许其它JSF实现可以吧。但是,本人在寻找更简捷的方式。

 

仔细研究源代码发现,inputFileUpload的原理是,通过过滤器,如果表单的enctype属性是multipart/form-data,就创建一个MultipartRequestWrapper类。这个类继承于HttpServletRequestWrapper。

 

MultipartRequestWrapper从request中分离出来文件,然后把相关文件信息存放到一个MAP里,把普通文本字段信息存在通过addTextParameter方法,另一个MAP里。(这里补充一句,request.getParameter方法实际上就是从一个MAP中取值)

 

最后MultipartRequestWrapper会在过滤器重写request对象,继续向下传递,当JSF实现获取request时,就可以通对requset对managed-bean进行设置请求值并且处理事件了。

 

其实最后,已经无须用inputFileUpload组件上传文件并且绑定到UploadedFile类型的对象了。

我们只需要从request中取出存放文件的MAP回来自行处理就可以了,这样,表单上,只要是html的<input type="file" id="xxx" name="xxx" />这样普通的标签就可以了,既然标签都是普通的html了,那么我们用javascript控制增加减少多少个上传文件数量都已经是无所谓的事情了,呵呵。

 

至此,已经达到动态表单多附件上传的目的了!

 

至于相关代码,下班了,不多说了,我就不帖出来了,有需要的朋友可以私下里找我。

2
2
分享到:
评论

相关推荐

    基于element组件库封装的动态表单组件

    Vue3的引入为动态表单组件带来了更好的性能和更灵活的API。Vue3采用了Composition API,它允许开发者将逻辑分组,提高了代码的可复用性和可维护性。 在描述中提到的`main.js`文件是Vue项目的入口文件,这里展示了...

    ASP无组件上传原理.pdfASP无组件上传原理.pdf

    ### ASP无组件上传原理详解 #### 一、引言 在Web开发中,文件上传是一项基本而重要的功能,尤其在不依赖于第三方组件的情况下实现这一功能,不仅考验开发者的技术水平,还能深入理解HTTP协议和MIME类型的工作机制...

    一款基于JavaScript实现的多附件上传表单添加类库源码及例子程序

    本资源提供了一款基于JavaScript实现的多附件上传表单添加类库的源码和示例程序,这对于开发者来说是一个很好的学习和实践工具。 首先,让我们深入理解JavaScript在多附件上传中的作用。JavaScript是一种客户端脚本...

    ASP无组件上传(支持多文件+表单数据)

    在压缩包中,"AN-Upload无组件上传(支持多文件+表单数据)"可能是实现这一功能的源代码或者详细教程。文件可能包括ASP脚本、HTML模板、示例数据以及可能的说明文档。使用者需要理解ASP语法和文件上传的基本原理,以便...

    风声无组件上传 asp

    - 无组件上传主要依赖于ASP内置的对象和方法,如`&lt;FORM&gt;`标签的`ENCTYPE`属性设置为`multipart/form-data`,以便处理文件数据。 - 使用`&lt;INPUT&gt;`标签的`TYPE="FILE"`来让用户选择要上传的文件。 - 服务器端通过`...

    动态表单:VUE动态表单

    在IT行业中,动态表单是一种常见且实用的功能,它允许用户根据特定需求自定义表单结构,无需预先编码。Vue.js作为一个轻量级且强大的前端框架,被广泛用于构建此类功能。Iview则是一个基于Vue的UI组件库,提供了丰富...

    无惧无组件上传类,ASP无组件上传

    "无惧无组件上传类,ASP无组件上传"就是针对这种情况提出的一种解决方案,它允许开发者在不依赖任何第三方组件的情况下,实现文件上传功能。下面将详细介绍这个主题及其相关知识点。 1. ASP基础: ASP是微软开发的一...

    无组件上传原理详解

    文件上传表单处理一和二的两个SWF文件可能是用来模拟传统文件上传过程的Flash组件。它们可能包含了以下功能: 1. 用户界面:在Flash中创建一个友好的文件选择界面,用户可以浏览和选择本地文件。 2. 分块上传:将大...

    动态表单组件.zip

    这些元素是表单中的基本组成部分,例如,单选按钮(Radio)用于用户选择一个选项,多选框(Checkbox)允许用户选择多个选项,下拉框(Select)则为用户提供一个可选列表。 5. **定制表单项**: 在某些情况下,标准...

    基于Vue和Element UI的动态表单组件设计源码

    基于Vue和Element UI的动态表单组件设计源码,该项目包含217个文件,主要文件类型有95个Vue前端文件,78个JavaScript文件,10个json配置文件,6个gif动画文件,5个Markdown文档,5个HTML页面文件,4个CSS样式文件,3...

    JAVA动态表单设计,自定义表单,自定义数据

    核心模块可能包含了动态表单系统的关键组件,如表单解析器、数据绑定器等。表单解析器将用户设计的表单转换为可执行的代码或数据结构,数据绑定器则负责将表单数据与后端数据库进行同步。 8. **POM.xml** 这是...

    基于vue+elementUI实现动态表单组件,通过拖拽组件到面板可实现一个表单 支持各个组件的动态隐藏显示,动态表格弹窗式维护

    动态表单,VUE动态表单。基于vue+element ui实现动态表单组件,通过拖拽组件到面板即可实现一个表单。支持各个组件的动态隐藏显示,动态表格弹窗式维护

    asp无组件上传类化境HTTP上传程序

    ASP无组件上传类化境HTTP上传程序是一种在ASP(Active Server Pages,动态服务器页面)环境下实现无需安装额外组件即可完成文件上传的技术。它依靠HTTP请求解析技术,通过编写ASP代码来实现客户端文件到服务器端的...

    Vue+Element实现动态生成新表单并添加验证功能

    在Vue.js框架中与Element UI组件库结合实现动态表单生成以及表单验证是一个相当实用的技术应用场景。本文主要阐述了如何使用Vue.js和Element UI来实现表单的动态生成,并为这些动态生成的表单添加了验证功能。 知识...

    aspcn组件 上传组件 VB ASP原程序

    在ASP(Active Server Pages)开发环境中,上传组件是常用于处理用户通过Web表单上传文件功能的关键元素。本资源提供的“aspcn组件”是一个专门针对VB(Visual Basic)和ASP编程语言设计的上传组件。它允许开发者在...

    基于Vue+Iview的ng-form-iview动态表单设计源码

    本项目是一款基于Vue和Iview框架的动态表单设计源码,总计包含68个文件,涵盖32个Vue组件文件、13个JavaScript文件、5个JSON配置文件、3个CSS样式文件、3个HTML模板文件、3个GIF动画文件、2个Markdown文档、2个ICO...

    layui多附件上传.rar

    layui是一款遵循MIT协议的前端UI框架,它的核心组件包括表格、表单、按钮、图标、弹层、工具提示等,同时提供了丰富的模块化扩展,如upload(上传)、form(表单)、laydate(日期选择器)等,使得开发者能够快速...

    基于layui自定义表单组件

    【基于layui自定义表单组件】是针对C#开发者设计的一种高效前端开发工具,它结合了layui框架的优势,为创建动态、交互性强的Web表单提供了便利。layui是一款优秀的前端轻量级框架,以其简洁的代码结构、丰富的模块...

Global site tag (gtag.js) - Google Analytics