之前一直写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”);
}
}
分享到:
相关推荐
【JSP 学习经验分享】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML、XML或者其他标记语言中嵌入Java代码,从而实现动态内容的生成。JSP 主要用于构建Web应用程序,提供与...
在介绍JSP学习经验的小结分享中,文中首先提出了JSP应用的两种基本组合模式:对于简单的应用,建议采用JSP+BAEN的组合方式;而对于复杂的系统,则应考虑使用JSP+EJB的组合。这种组合方式的建议说明了在不同复杂度的...
JspRun的开源性质也意味着它有一个活跃的社区,开发者可以在论坛上寻求帮助、分享经验、报告问题,甚至参与项目的改进。开源社区的力量往往能推动软件的持续优化和完善,为用户提供更好的体验。 在文件列表中提到的...
【jsp校园宿舍管理系统分享】 本系统是基于Java的JSP技术构建的一个全面的校园宿舍管理系统。JSP(JavaServer Pages)是一种动态网页开发技术,它允许开发者将Java代码嵌入到HTML页面中,以实现服务器端的数据处理...
JSP社区论坛是一种在线交流平台,专为JSP开发者提供讨论、分享经验、解决问题的场所。 在JSP社区论坛中,开发者可以探讨以下几个核心知识点: 1. **JSP基本语法**:了解JSP页面的结构,包括指令(directives)、...
【JSP论坛精华文章】汇集了Java服务器页面(JSP)技术的众多核心...文件"jsp精华文章.chm"很可能是这样一个知识库,包含了各种问题的解决方案、技巧分享和案例分析,对于初学者和经验丰富的开发者来说都是宝贵的资源。
**JSP(JavaServer Pages)**是Java平台上用于构建动态Web应用程序的一种技术,它允许开发者在HTML、XML或其他标记语言中嵌入Java...同时,通过加入不同主题的交流群,可以与其他专业人士交流,分享经验,共同进步。
这些项目涵盖了多种应用场景,包括但不限于用户管理系统、电子商务平台、论坛系统等,提供了丰富的实战经验。 `JSP`是一种由Java技术驱动的服务器端网页编程技术。它允许开发人员将动态代码嵌入到HTML或XML文档中,...
在JSP论坛中,开发者们可以讨论和分享关于JSP的各种技术和实践经验,包括但不限于页面设计、数据处理、用户交互以及与其他Java技术(如Servlet、JDBC、EJB等)的集成。 JSP的核心特点在于将静态HTML内容和动态Java...
《Core JSP》这本书是关于JavaServer Pages(JSP)技术的专业指南,旨在帮助开发者深入...同时,结合提供的博客链接(虽然此处未给出具体内容),可能还有作者的实践经验分享和社区讨论,这将进一步丰富你的学习体验。
同时,作者建议读者支持其博客,这可能意味着该资源还包括作者对JSP技术的深入见解、解决问题的经验分享,以及不断更新的技术资讯。 总之,《JSP信息系统开发实例精选》是一份宝贵的教育资源,无论你是初学者还是有...
博客系统是一种在线发布和分享个人或团队思想、见解和经验的平台,通常包含文章发布、评论、分类、搜索等功能。本资源提供的是一个基于JSP、Servlet和MySQL技术构建的博客系统网站源码,适用于学习和开发Web应用程序...
本文将根据个人经验,分享一些解决这些问题的方法,希望能对同样面临这些问题的开发者有所帮助。 #### 一、TOMCAT配置与优化 1. **目录结构**: - TOMCAT安装目录下,`webapps`目录是存放应用的地方,例如`C:\...
【描述】虽然描述部分为空,但从“博文链接”我们可以推测这篇内容可能包含了作者在使用JSP进行建站时的经验分享、遇到的问题以及解决方法。在实际的JSP建站过程中,开发者通常会涉及到页面设计、数据库交互、服务器...
使用jspSmartUpload组件在jsp中实现上传和下载 在现代Web开发中,文件上传与下载是常见的需求之一,尤其在企业...无论是对于初学者还是经验丰富的开发者,掌握jspSmartUpload的使用技巧都将对项目开发带来显著的提升。
根据描述中的信息,“jsp的笔记”可能包含了作者在学习过程中的一些个人理解和经验分享。虽然具体的内容没有给出,但从整体框架来看,这份笔记可能覆盖了JSP的基础概念、页面结构、内置对象、生命周期以及一些高级...
它提供了用户交流思想、分享知识的环境,对于学习者来说,不仅是一个实际的应用示例,也是一个深入了解JSP和MySQL交互机制的绝佳教程。 JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发人员在HTML...
10. **最佳实践和调试技巧**:分享编写高效、可维护JSP代码的建议,以及如何定位和解决常见问题的方法。 本教程由人民邮电出版社出版,两位作者郭真和王国辉具有丰富的教学和实践经验,他们的著作将理论与实践相...
文件"jsp课程设计报告(06061325).doc"可能是关于JSP博客系统的设计和实现的详细报告,涵盖了系统的需求分析、架构设计、实现过程和技术难点等内容,对于学习JSP开发和项目经验积累非常有价值。 **MyWork目录** ...
”这说明作者通过深入学习和实践,成功地构建了一个购物车系统,并愿意与他人分享经验和成果。这可能包括了对JSP语法、MVC架构理解和应用以及购物车功能的实现过程。“感觉还可以的上来留个言!有什么建议的也可以...