关于JSP表单的一些技巧和经验
2012-01-17 11:44
471 查看
1:超连接跳转
我们在超连接的时候,常常连接到一个jsp或者Action,比如:
XXX
这样做会有一个问题:在test.jsp中,除你传递的param1和param2参数外,你用request.getParamter()取任何原来页面的表单元素都会为空,这是因为XXX在脚本中如下处理:
文本格式复制代码打印?
function commonSubmit(url)
{
form1.action="/jsp/managerAction.do?"+url;
form1.submit();
}
提交到Action和jsp是一样的原理,但要记住 中method=post不能少,否则它只提交表单而不传param参数了(正好和第一种相反:) )
2:js和java变量互传
在jsp中经常会遇到把js变量赋给java变量,或者将java变量赋给js变量的情况,在此将通用的处理方法小结如下:
java变量传给js好办,var a ="<%=javaParam%>";注意要将引号""加上;js变量给java稍微复杂点,一般是在表单中用一个
的隐藏表单元素,然后在脚本中将js变量值赋给它:
文本格式复制代码打印?
var jsParamvalue='aaaa';
form1.jsParam.value=jsParamvalue;
然后就可以request.getPrameter("jsPrama");来取得js变量值了
3:Action中request不会丢掉
不知大家有没有注意到这个好处,Struts架构中是由一个 ActionServlet来作为MVC的控制器角色,jsp页面提交后request是传到ActionServelt中的, 而ActionServlet将根据struts-config.xml中的配置调用相应的Action的方法,并将从jsp中获得的request传给 Action类,这样request的生命周期是连续的,即你在jsp中提交了表单,在Action中执行了方法,再回到jsp页面,用 request.getParamter()取jsp页面的表单元素值会发现它还在,这对于页面下拉列表等选择项防止复位是一个很好实现方法。
4:传参时参数有空格的情况
如果你提交form时带参数,比如form1.action="/jsp/Action.do?param1="+value1,注意如果value1中带有空格的话,你在
Action中request.getParameter("param1");
取得的只是空格前的值,因此如果有这种带空格的参数在传递时,个人建议是将其转化为特定的字符串,value1=value1.replaceAll(" ","%NULL%");
然后在Action中将其转回来:
文本格式复制代码打印?
request.getParamter("param1").replaceAll("%NULL%"," ");
5:form-data属性
如果你要用来上传文件的话,注意在一个表单中如果有enctype="multipart/form-data"属性的话,是不能接收除 type=file外的其他表单元素类型的。 即如果你把和放在同一表单中,而该表单有enctype="multipart/form-data"的话,request.getParamter取 text的值会为空, 这个问题的最简单的解决方法是将单独放一个表单,上传文件时只提交该表单即可。
6: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.itjianghu.net/120108/409163932.htm
我们在超连接的时候,常常连接到一个jsp或者Action,比如:
XXX
这样做会有一个问题:在test.jsp中,除你传递的param1和param2参数外,你用request.getParamter()取任何原来页面的表单元素都会为空,这是因为XXX在脚本中如下处理:
文本格式复制代码打印?
function commonSubmit(url)
{
form1.action="/jsp/managerAction.do?"+url;
form1.submit();
}
提交到Action和jsp是一样的原理,但要记住 中method=post不能少,否则它只提交表单而不传param参数了(正好和第一种相反:) )
2:js和java变量互传
在jsp中经常会遇到把js变量赋给java变量,或者将java变量赋给js变量的情况,在此将通用的处理方法小结如下:
java变量传给js好办,var a ="<%=javaParam%>";注意要将引号""加上;js变量给java稍微复杂点,一般是在表单中用一个
的隐藏表单元素,然后在脚本中将js变量值赋给它:
文本格式复制代码打印?
var jsParamvalue='aaaa';
form1.jsParam.value=jsParamvalue;
然后就可以request.getPrameter("jsPrama");来取得js变量值了
3:Action中request不会丢掉
不知大家有没有注意到这个好处,Struts架构中是由一个 ActionServlet来作为MVC的控制器角色,jsp页面提交后request是传到ActionServelt中的, 而ActionServlet将根据struts-config.xml中的配置调用相应的Action的方法,并将从jsp中获得的request传给 Action类,这样request的生命周期是连续的,即你在jsp中提交了表单,在Action中执行了方法,再回到jsp页面,用 request.getParamter()取jsp页面的表单元素值会发现它还在,这对于页面下拉列表等选择项防止复位是一个很好实现方法。
4:传参时参数有空格的情况
如果你提交form时带参数,比如form1.action="/jsp/Action.do?param1="+value1,注意如果value1中带有空格的话,你在
Action中request.getParameter("param1");
取得的只是空格前的值,因此如果有这种带空格的参数在传递时,个人建议是将其转化为特定的字符串,value1=value1.replaceAll(" ","%NULL%");
然后在Action中将其转回来:
文本格式复制代码打印?
request.getParamter("param1").replaceAll("%NULL%"," ");
5:form-data属性
如果你要用来上传文件的话,注意在一个表单中如果有enctype="multipart/form-data"属性的话,是不能接收除 type=file外的其他表单元素类型的。 即如果你把和放在同一表单中,而该表单有enctype="multipart/form-data"的话,request.getParamter取 text的值会为空, 这个问题的最简单的解决方法是将单独放一个表单,上传文件时只提交该表单即可。
6: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.itjianghu.net/120108/409163932.htm
相关文章推荐
- 表单开发的一些细节技巧(jsp+js)
- 关于代码阅读的编程实现技巧及自己工作学习的一些经验(推荐看后面的后记)
- JavaScript关于表单脚本的一些实用技巧
- JSP处理表单的一些经验分享
- 关于JSP编译流程,和Vector处理的一些小经验
- 在jsp中表单的一些经验分享
- JSP处理表单的一些经验分享
- Shell开发的一些技巧和经验
- 关于ASPNET在IIS一些问题的经验总结
- 关于line-height的一些个人经验整理
- 关于在使用表单提交时间到后台,提交的时间的类型的一些解决方法(主要针对oracle数据库)
- 挖洞经验 | 可以被XSS利用的HTML标签和一些手段技巧
- 谈谈关于Android NDK程序使用jni的一些技巧
- 关于Keychain Sharing的一些个人经验
- 关于高考英语阅读理解的一些个人技巧1.17
- 关于表单的两点交互体验改进技巧
- 关于CSS布局的一些经验
- 关于做Notification的一些经验
- 关于servlet+jsp+java实现Web登陆页界面的一些笔记(一)
- 网上看到的一些关于asp.net开发的经验