`
zhangym124
  • 浏览: 342638 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

WebX3表单验证——实践心得

阅读更多
  • 工作中我们常常会遇到表单验证不通过后的跳转问题,以及跳转后丢失参数的问题,下面我们针对以上问题进行分析及给出解决方案。

表单验证失败处理流程

  • uploadAttachment.vm(表单提交) ——> XXXAction(@FormGroup注解执行失败) ——> UploadAttachment.java ——> uploadAttachment.vm

表单验证失败跳转机制

<form action="" method="post" id="upload-attachment-form">
        $csrfToken.hiddenField
        <input type="hidden" name="action" value="project_action"/>
        <input type="hidden" name="event_submit_do_upload_attachment" value="event_submit_do_upload_attachment"/>
        <input type="hidden" name="$group.containerId.key" value="$project.id">
        <input onchange="uploadFile()" style="display:none" id="uploadAttachment" name="$!group.file.key" value="$!group.file.value" type="text"  />
</form>

假如我们当前的url为:
http://localhost:8080/project/upload_attachment.htm?versionId=27437
则上面的表单提交且验证失败后,会根据 form 标签中的 action="" 中的值进行跳转,如果留空则为跳转到当前页面。
根据上面的代码,会跳转到http://localhost:8080/project/upload_attachment.htm?versionId=27437
注意 url中带有versionId参数

再来看下面这段代码,为上传附件的表单提交,并进行验证

<form action="" method="post" id="upload-attachment-form" enctype="multipart/form-data">
        $csrfToken.hiddenField
        <input type="hidden" name="action" value="project_action"/>
        <input type="hidden" name="event_submit_do_upload_attachment" value="event_submit_do_upload_attachment"/>
        <input type="hidden" name="$group.containerId.key" value="$project.id">
        <input onchange="uploadFile()" style="display:none" id="uploadAttachment" name="$!group.file.key" value="$!group.file.value" type="file"  />
</form>

假如我们当前的url仍为:
http://localhost:8080/project/upload_attachment.htm?versionId=27437
则上面的表单提交且验证失败后,跳转回的url为http://localhost:8080/project/upload_attachment.htm
注意 丢失掉了versionId参数,跳转回的结果不是我们想要的

如何解决二进制表单提交验证不通过后的跳转问题?

如果表单中要上传附件,即带有enctype="multipart/form-data"标签,如下:

<form action="" method="post" id="upload-attachment-form" enctype="multipart/form-data">
        $csrfToken.hiddenField
        <input type="hidden" name="action" value="project_action"/>
        <input type="hidden" name="event_submit_do_upload_attachment" value="event_submit_do_upload_attachment"/>
        <input type="hidden" name="$group.containerId.key" value="$project.id">
        <input type="hidden" name="versionId" value="$project.id">
        <input onchange="uploadFile()" style="display:none" id="uploadAttachment" name="$!group.file.key" value="$!group.file.value" type="file"  />
</form>

则表单中的数据是以二进制文件流的方式提交到后端,会忽略掉url中带入的参数。
将url中所要传递的参数以表单隐藏域的形式进行提交,则问题就会得以解决:
则跳转回http://localhost:8080/project/upload_attachment.htm?versionId=27437这个页面,其中带上了versionId参数。

  • 总结: 1.利用好action="XXX"来控制验证不通过后的跳转。
  •            2.如果是以二进制的形式传输表单数据,记得要把url中的参数带入到表单中。
0
1
分享到:
评论

相关推荐

    webx3文档——web开发

    Webx是基于Java的Web应用框架,它具有高成熟度和可靠性,并且具备强大的开放性和扩展性。Webx框架的文档详细介绍了该框架的设计理念、历史、优势以及与Spring框架的集成等方面。文档内容主要分为两大部分:Webx框架...

    webx总结 项目实践总结

    WebX是一个基于Java的开源Web应用框架,它提供了一种高效、灵活的...参考提供的文档和资源,如《Webx配置文件加载顺序与作用.docx》、《webx基础.docx》和《表单验证webx.pptx》,将有助于进一步提升WebX的使用技能。

    webx3学习的demo,以及留言板的小例子

    3. **组件**:WebX3提供了丰富的组件库,如表格、表单、按钮等,用于构建用户界面。 4. **控制器和服务**:控制器处理用户请求,调用服务执行业务逻辑,然后返回结果给视图。 5. **视图**:展示给用户的界面,通常由...

    webx

    在"petstore-webx3"这个压缩包中,我们可能找到了一个示例应用——PetStore,它是基于WebX框架的一个在线宠物商店的实现。 WebX 的核心特点和关键技术主要包括以下几个方面: 1. **MVC(Model-View-Controller)...

    淘宝框架 Webx3资料

    - **成熟可靠性**:作为阿里巴巴内部众多大型项目的基石,Webx3已经经过了多年的实践检验,证明了其在高并发、大数据量处理场景下的稳定性和高效性。 - **开放与扩展性**:Webx3支持开发者根据实际需求进行定制化...

    Webx及框架简介

    - **强大的表单处理**:Webx提供了一套完整的表单验证和处理机制,支持自定义验证规则。 - **灵活的URL映射**:开发者可以根据需要自定义URL映射规则,实现友好的URL设计。 - **易扩展**:Webx的模块化设计使得添加...

    Webx3_Guide_Book.pdf 用户指南

    Webx3_Guide_Book 用户指南 2001年,阿里巴巴内部开始使用Java Servlet作为WEB服务器端的技术,以取代原先的 Apache HTTPD server和mod_perl的组合。 • 2002年,选择Jakarta Turbine作为WEB框架,并开始在此之上...

    WebX3 Guide Book学习指南

    《WebX3 Guide Book学习指南》是一本由Michael Zhou编写的关于Webx框架的专业书籍,出版于2010年11月13日。Webx框架是一个用于构建Web应用程序的强大工具,尤其在Java开发领域中有着广泛的应用。本书旨在为开发者...

    Webx3_Guide_Book.rar_tapeov2_webx_webx 开源框架

    综上所述,《Webx3_Guide_Book.pdf》将带领我们逐步探索Webx3框架的每个角落,从基础概念到高级特性,从理论到实践,帮助开发者熟练掌握这一强大工具,提升Java Web开发的专业技能。无论是初学者还是经验丰富的...

    webx3框架指南PDF教程附学习Demo

    3. Webx的历史 ....................................................................................................... ix 4. 为什么要用Webx而不是其它的开源框架? ........................................

    Webx3日志系统的配置

    《Webx3日志系统配置指南》 在Web开发中,日志系统是不可或缺的一部分,它可以帮助开发者跟踪程序运行状态,定位错误,以及进行性能分析。Webx3是一款功能强大的Web应用框架,其中包含了完善的日志处理机制。本文将...

    怎么在webx3中取得cookie的值

    在Webx3中获取Cookie的值是Web开发中常见的任务,尤其对于依赖用户会话信息的应用来说至关重要。Webx3是一个基于Java的企业级Web应用框架,...记住,不断学习和实践是提升技能的关键,祝你在Webx3开发中取得更多成就!

    paoding-webx3-solr-lucene

    《剖析paoding-webx3-solr-lucene:构建高效搜索引擎的深度探索》 在现代互联网应用中,数据量的增长速度惊人,如何高效地搜索和处理这些数据成为了开发者面临的重大挑战。"paoding-webx3-solr-lucene"是一个专注于...

    webx总结

    文件名“Webx3_requestContexts.docx”可能是指Webx的第三个主要版本(Webx3)中的Request Context(请求上下文)部分。Request Context是Web框架中常见的一种设计模式,用于封装HTTP请求的相关信息,如请求参数、...

    淘宝WEBX框架详解

    通过深入学习WEBX框架,开发者可以更好地理解和实践淘宝的开发流程,从而在实际工作中更快速地适应和产出。 **1. WEBX框架的核心特性** WEBX框架的核心特性包括模块化、面向服务的设计、灵活的数据访问层以及强大...

    webx框架指南

    Webx是一个由阿里巴巴开源的Java企业级应用开发框架,它是Spring框架的一种扩展和深化。Webx的设计理念建立在层次化架构之上,提倡页面驱动、约定优于配置等设计原则。它的出现为Java开发者提供了一个可以替代传统...

    WebX入门指南示例程序

    总的来说,WebX入门指南示例程序是一个很好的学习起点,通过实践和理解这个示例,你将能够掌握WebX的基本概念和用法,为进一步深入学习和开发WebX应用打下坚实的基础。同时,参考博客文章...

    Webx3_Guide_Book.pdf

    Webx是一个高性能的Java Web应用框架,提供了丰富的组件和灵活的设计理念,使得开发者能够快速构建出可扩展、易于维护的Web应用程序。本知识点将详细介绍Webx框架的核心理念、架构层次、使用优势以及在实际开发中的...

Global site tag (gtag.js) - Google Analytics