您的位置:首页 > Web前端 > JavaScript

JSP处理表单的一些经验分享

2007-11-20 15:00 232 查看
1:超连接跳转 比如:url="jsp/managerAction.do?"+url;只传递参数,不传递表单

2:即传参又提交表单 比如:

function commonSubmit(url)

{

form1.action="/jsp/managerAction.do?"+url;

form1.action.method=post;

form1.submit();

}

3:js和java变量互传

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: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”);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: