java处理表单变量_jsp处理表单及JS和JAVA变量互传
1:超连接跳转
我们在超连接的时候,常常连接到一个jsp或者Action,比如:
XXX
这样做会有一个问题:在test.jsp中,除你传递的param1和param2参数外,你用request.getParamter()取任何原来页面的表单元素都会为空,这是因为这种方式会产生新的request生命周期,在这个request中只会包含超连接后跟随的?param1这种参数, 因此我的建议是如果不是很简单的页面跳转(比如回登陆页面之类的),尽量不要用这种超连接方式。
2:即传参又提交表单
如果确实既要像上述第一种方式传参数,又要提交表单的话,可以采取如下方式:
在脚本中如下处理:
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”);
}
}
补充:ajax其实就是实时的,在页面不刷新的情况下,将JS变量传到服务器的技术
总结:不能拿JS变量在页面上给java变量赋值,相反可以用var jsParam = "" 将java变量赋值给js变量
java处理表单变量_jsp处理表单及JS和JAVA变量互传相关推荐
- webview js 与 java 调用参数问题。
最近使用到WebView嵌套网页的方式做了一个Android应用,遇到了js与java native方法调用的问题. 1.新版本在js调用java方法时调用失败,主要原因是需要在设置的java方法中增 ...
- 用java写注册表单_利用HTML表单标签编写一个注册页面
今天我们来写一个注册页面 form表单 先来利用表单标签制作一个简单的注册页面,给大家说说标签的结构: 页面结构大体就是这样子的~ 利用HTML表单标签编写一个注册页面 表单标签: 所有需要提交到服务 ...
- java 用户名不为空_[Java教程]【关于JavaScript】常见表单用户名、密码不能为空
[Java教程][关于JavaScript]常见表单用户名.密码不能为空 0 2015-05-31 12:00:14 在论坛等系统的用户注册功能中,如果用户忘记填写必填信息,如用户名.密码等,浏览器会 ...
- Java POJO Bean 对象与 Web Form 表单的自动装配
PS: 我一直在找寻为什么 struts2有自动将form字段和getter setter 自动 匹配的功能, 这篇文章解答了我的疑惑 深度剖析:Java POJO Bean 对象与 Web Form ...
- java 获取js元素,表单元素值获取方式js及java方式的简单实例
表单元素值获取方式js及java方式的简单实例 这里有新鲜出炉的 Javascript 教程,程序狗速度看过来! JavaScript 客户端脚本语言 Javascript 是一种由 Netscape ...
- java 填充pdf_Java创建和填充PDF表单域方法
表单域,可以按用途分为多种不同的类型,常见的有文本框.多行文本框.密码框.隐藏域.复选框.单选框和下拉选择框等,目的是用于采集用户的输入或选择的数据.下面的示例中,将分享通过Java编程在PDF中添加 ...
- java jquery提交表单_Jquery ajax提交表单几种方法
在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$('#表单ID').serialize();就行了,下面我来介绍两个提交表单数据的方法. ...
- java 表单设计器 开源_6款在线表单设计器_Web表单设计器_AnyReport
AnyReport表单设计器作为报表的一个组件,可设计多样式表单,收集数据,可生成对应的物理表字段,支持在线设计表单.预览 表单,并支持一对多关系的表单结构设计,生成的表单支持输出excel文件,使用 ...
- 线性表详解(静态链表、单链表、双向链表、循环链表)
目录 申明 1. 线性表的定义 2. 线性表的抽象数据类型 3. 线性表的顺序存储结构 3. 1 顺序存储定义 3. 2 顺序存储方式 3. 3 数据长度与线性表长度区别 3. 4 地址计算方法 4. ...
最新文章
- 百度股价一跌再跌,网友叹息:李彦宏没有狼性,缺乏战略眼光?
- 0基础学python-看完这篇,零基础也知道怎么学Python
- Java基础(三)面向对象(下)
- LINUX使用tcgetattr函数与tcsetattr函数控制终端二
- 检索数据_18_按照多个字段排序查询结果
- 2020考研备考:中国大学最顶尖学科名单——数学
- 树莓派安装ftp服务器
- mshtml 解析html c,使用MSHTML解析HTML代码
- JS设置select下拉框默认选中
- 基于RSA的数字签名设计与实现
- Synplify 综合Gtech 网表
- Daily record-August
- Vue 3.0父子组件通信
- 2022-2028年全球与中国工业分析软件市场现状及未来发展趋势分析报告
- 教你从头发洞察宝宝的健康情况
- 为什么要租用服务器,租用服务器有什么好处
- Harmonic Number 调和级数
- 万能遥控器小制作(一)
- 办公室免费WiFi上网,悄悄地
- tomcat manager 禁止外网访问 只容许内网访问