`
zjx2388
  • 浏览: 1342851 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

处理表单的一些经验--转载

阅读更多

之前一直写struts,在页面跳转和表单提交这一类问题上碰了不少钉子,于是想把处理这类问题的经历和见解写出来,供各位业内的同仁参考,有不对的地方,敬请斧正!

1:超连接跳转 我们在超连接的时候,常常连接到一个jsp或者Action,比如:

XXX

这样做会有一个问题:在test.jsp中,除你传递的param1和param2参数外,你用request.getParamter()取任何原来页面的表单元素都会为空,这是因为这种方式会产生新的request生命周期,在这个request中只会包含超连接后跟随的?param1这种参数, 因此我的建议是如果不是很简单的页面跳转(比如回登陆页面之类的),尽量不要用这种超连接方式。

2:即传参又提交表单 如果确实既要像上述第一种方式传参数,又要提交表单的话,可以采取如下方式:

XXX在脚本中如下处理:

function commonSubmit(url) { form1.action="/jsp/managerAction.do?"+url; form1.submit(); }

提交到Action和jsp是一样的原理,但要记住 中method=post不能少,否则它只提交表单而不传param参数了(正好和第一种相反:) ) 3:js和java变量互传 在jsp中经常会遇到把js变量赋给java变量,或者将java变量赋给js变量的情况,在此将通用的处理方法小结如下: java变量传给js好办,var a ="";注意要将引号""加上;js变量给java稍微复杂点,一般是在表单中用一个 的隐藏表单元素,然后在脚本中将js变量值赋给它:

var jsParamValue='aaaa'; form1.jsParam.value=jsParamValue;

然后就可以request.getPrameter("jsPrama");来取得js变量值了 4:Action中request不会丢掉 不知大家有没有注意到这个好处,Struts架构中是由一个ActionServlet来作为MVC的控制器角色,jsp页面提交后request是传到ActionServelt中的, 而ActionServlet将根据struts-config.xml中的配置调用相应的Action的方法,并将从jsp中获得的request传给Action类,这样request的生命周期是连续的,即你在jsp中提交了表单,在Action中执行了方法,再回到jsp页面,用request.getParamter()取jsp页面的表单元素值会发现它还在,这对于页面下拉列表等选择项防止复位是一个很好实现方法。

5:传参时参数有空格的情况 如果你提交form时带参数,比如form1.action="/jsp/Action.do?param1="+value1,注意如果value1中带有空格的话,你在

Action中request.getParameter("param1");

取得的只是空格前的值,因此如果有这种带空格的参数在传递时,个人建议是将其转化为特定的字符串,value1=value1.replaceAll(" ","%NULL%"); 然后在Action中将其转回来:request.getParamter("param1").replaceAll("%NULL%"," "); 6:form-data属性 如果你要用来上传文件的话,注意在一个表单中如果有enctype="multipart/form-data"属性的话,是不能接收除type=file外的其他表单元素类型的。 即如果你把和放在同一表单中,而该表单有enctype="multipart/form-data"的话,request.getParamter取text的值会为空, 这个问题的最简单的解决方法是将单独放一个表单,上传文件时只提交该表单即可。 7:jsp中开模式对话框的方式 与Swing中类似,jsp中也有模式对话框这一概念,你可以将一个jsp页面放到一个模式对话框中打开,这样在模式对话框消失前,原jsp页面将不可操作。特别适合父页面中要做一些额外的选择操作,而又没必要跳转到新的jsp页面的时候, 开模式对话框的方式参考如下:

Function open() { If(window.showModelDialog()) { Var returnValue = showModelDialog(“/jsp/模式窗口包含的jsp页面路径”; help=0;status=0;center=yes;dialogWidth=100pt;dialogHeight=100pt”); } }

来源:http://www.bwie.com

分享到:
评论

相关推荐

    用STRUTS的TOKEN机制解决表单重复提交,转载自:百度文库

    在处理表单提交时,如果用户意外地多次点击了提交按钮,可能会导致数据的重复录入,从而引起不必要的问题,例如订单重复、数据库数据异常等。为了解决这个问题,开发者可以利用Struts框架提供的Token机制。 首先,...

    信息类网站源码-转载

    1. **Add.asp**:这是一个添加信息的页面,通常包含表单元素,用户可以在此提交新的分类信息。它涉及到前端HTML和后端ASP(Active Server Pages)技术,用于处理数据提交和存储。 2. **View_Info.asp**:此页面用于...

    Ext学习文档--转载整理

    EXT的一大亮点是支持可编辑的网格(Edit Grid),能够处理XML和JSON数据类型,且具备详尽的文档说明。 下载EXT的最新版本通常是大多数开发者的首选,可以从官方站点http://extjs.com/downloads 获取。EXT提供了多个...

    js提示框-转载+++ js 乱码+++自动提交+滚动图片加载+箭头导航(转载)

    在这个"js提示框-转载+++ js 乱码+++自动提交+滚动图片加载+箭头导航(转载)"的资源包中,我们可以看到几个关键的技术点,下面将详细阐述这些知识点。 首先,"js提示框"通常指的是JavaScript中的alert()、prompt()或...

    【RPA之家转载视频教程1】Automation Anywhere解释--Edureka-RPA Live-2.rar

    【RPA之家转载视频教程1】Automation Anywhere解释--Edureka-RPA Live-2.rar 这个压缩包文件提供了一套完整的RPA(Robotic Process Automation)学习资源,特别聚焦于Automation Anywhere这一全球领先的RPA平台。...

    JavaScript一些技巧(转载)

    根据给定的文件信息,以下是对“JavaScript一些技巧”中涉及的关键知识点的详细解析: ### 1. 事件处理:`onBlur`, `onFocus`, `onChange`, `onSelect` 在网页开发中,事件处理是与用户交互的核心部分。`onBlur`...

    转载MVC音乐商店实例_完整中文版

    - **表单提交**:使用 HTTP POST 方法提交表单数据,控制器接收并处理。 #### 八、用户认证与授权 - **登录功能**:用户输入用户名和密码,控制器验证后设置当前登录状态。 - **注册功能**:用户填写注册信息,...

    Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)

    在Web开发中,表单是必不可少的部分,而Vue提供了非常方便的方式来处理表单数据绑定以及用户输入。本文将详细介绍如何在Vue中使用单选按钮、选择框,并且展示如何使用v-for指令来渲染动态选项。 首先,我们从单选...

    DWZ富客户端框架使用手册

    - **Java服务器端表单处理示例**:提供Java后端处理表单数据的例子。 2. **DWZjs库介绍**:包含一系列JavaScript文件,例如: - **dwz.core.js**:核心库,负责框架的基础功能。 - **dwz.ajax.js**:处理Ajax...

    [转载] JDBC+Servlet+JSP整合开发之-JSP项目实战

    5. **用户交互**:实现表单提交,验证用户输入,可能涉及错误处理和跳转。 6. **会话管理**:使用`HttpSession`对象跟踪用户状态,实现登录、注销功能。 7. **异常处理**:设置全局异常处理机制,提高程序健壮性。...

    【RPA之家转载视频教程4】UiPath初学者教程-RPA初学者教程-UiPath在线培训-Edureka.rar

    【RPA之家转载视频教程4】UiPath初学者教程是一套专门为那些想要深入了解RPA(Robotic Process Automation)技术的人设计的学习资源。本教程由知名在线教育平台Edureka提供,旨在帮助初学者快速掌握UiPath这一领先的...

    【RPA之家转载视频教程2】5分钟内的RPA-什么是RPA-机器人过程自动化-RPA解释-简单学习.rar

    首先,RPA的核心在于它可以自动化那些重复性高、规则明确的任务,如数据录入、表单填写、文件管理等,这些工作往往占用了员工大量时间,而RPA机器人则能高效、准确地执行这些任务。 RPA的工作原理是通过记录和理解...

    【RPA之家转载视频教程6】UiPath中的Web和Excel自动化-UiPath示例-UiPath培训-Edureka-RPA Live-1.rar

    5. **网页登录自动化**:学习如何自动填写表单并进行登录操作。 在Excel自动化方面,课程将包括: 1. **读写Excel数据**:教授如何使用UiPath读取Excel文件中的数据,以及将处理后的数据写回Excel。 2. **处理工作...

    【RPA之家转载AA视频教程】19.Forms and Interactive .rar

    综上所述,这个教程涵盖了RPA在处理表单和交互式工作流中的关键概念,包括触发循环和被关注自动化,特别适用于那些想要提升RPA技能或正在使用Automation Anywhere平台的初学者。通过深入学习和实践,用户可以更好地...

    JBuilder2005实战JSP(转载)

    表单的"data"在提交时会通过HTTP协议以POST方式发送到"switch.jsp"处理,POST方式具有较高的数据保密性和无数据大小限制的特点。 值得注意的是,JSP文件包含静态HTML和动态JSP标签两部分。JBuilder在处理JSP标签和...

    华为面试试题,很经典,转载

    【Struts】Struts是Java EE平台上的一个MVC框架,面试可能会涉及到Action、Interceptor、Result、Form Bean等概念,以及如何处理表单提交、拦截器的实现和自定义标签的使用。理解Struts的工作原理和最佳实践是必不可...

Global site tag (gtag.js) - Google Analytics