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变量互传相关推荐

  1. webview js 与 java 调用参数问题。

    最近使用到WebView嵌套网页的方式做了一个Android应用,遇到了js与java native方法调用的问题. 1.新版本在js调用java方法时调用失败,主要原因是需要在设置的java方法中增 ...

  2. 用java写注册表单_利用HTML表单标签编写一个注册页面

    今天我们来写一个注册页面 form表单 先来利用表单标签制作一个简单的注册页面,给大家说说标签的结构: 页面结构大体就是这样子的~ 利用HTML表单标签编写一个注册页面 表单标签: 所有需要提交到服务 ...

  3. java 用户名不为空_[Java教程]【关于JavaScript】常见表单用户名、密码不能为空

    [Java教程][关于JavaScript]常见表单用户名.密码不能为空 0 2015-05-31 12:00:14 在论坛等系统的用户注册功能中,如果用户忘记填写必填信息,如用户名.密码等,浏览器会 ...

  4. Java POJO Bean 对象与 Web Form 表单的自动装配

    PS: 我一直在找寻为什么 struts2有自动将form字段和getter setter 自动 匹配的功能, 这篇文章解答了我的疑惑 深度剖析:Java POJO Bean 对象与 Web Form ...

  5. java 获取js元素,表单元素值获取方式js及java方式的简单实例

    表单元素值获取方式js及java方式的简单实例 这里有新鲜出炉的 Javascript 教程,程序狗速度看过来! JavaScript 客户端脚本语言 Javascript 是一种由 Netscape ...

  6. java 填充pdf_Java创建和填充PDF表单域方法

    表单域,可以按用途分为多种不同的类型,常见的有文本框.多行文本框.密码框.隐藏域.复选框.单选框和下拉选择框等,目的是用于采集用户的输入或选择的数据.下面的示例中,将分享通过Java编程在PDF中添加 ...

  7. java jquery提交表单_Jquery ajax提交表单几种方法

    在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$('#表单ID').serialize();就行了,下面我来介绍两个提交表单数据的方法. ...

  8. java 表单设计器 开源_6款在线表单设计器_Web表单设计器_AnyReport

    AnyReport表单设计器作为报表的一个组件,可设计多样式表单,收集数据,可生成对应的物理表字段,支持在线设计表单.预览 表单,并支持一对多关系的表单结构设计,生成的表单支持输出excel文件,使用 ...

  9. 线性表详解(静态链表、单链表、双向链表、循环链表)

    目录 申明 1. 线性表的定义 2. 线性表的抽象数据类型 3. 线性表的顺序存储结构 3. 1 顺序存储定义 3. 2 顺序存储方式 3. 3 数据长度与线性表长度区别 3. 4 地址计算方法 4. ...

最新文章

  1. 百度股价一跌再跌,网友叹息:李彦宏没有狼性,缺乏战略眼光?
  2. 0基础学python-看完这篇,零基础也知道怎么学Python
  3. Java基础(三)面向对象(下)
  4. LINUX使用tcgetattr函数与tcsetattr函数控制终端二
  5. 检索数据_18_按照多个字段排序查询结果
  6. 2020考研备考:中国大学最顶尖学科名单——数学
  7. 树莓派安装ftp服务器
  8. mshtml 解析html c,使用MSHTML解析HTML代码
  9. JS设置select下拉框默认选中
  10. 基于RSA的数字签名设计与实现
  11. Synplify 综合Gtech 网表
  12. Daily record-August
  13. Vue 3.0父子组件通信
  14. 2022-2028年全球与中国工业分析软件市场现状及未来发展趋势分析报告
  15. 教你从头发洞察宝宝的健康情况
  16. 为什么要租用服务器,租用服务器有什么好处
  17. Harmonic Number 调和级数
  18. 万能遥控器小制作(一)
  19. 办公室免费WiFi上网,悄悄地
  20. tomcat manager 禁止外网访问 只容许内网访问

热门文章

  1. WindowsServer2003中Vmware虚拟机与物理机配置FTP文件共享
  2. PHP里 date() 函数与 strtotime() 函数笔记
  3. 车是银色好还是白色好?
  4. 【DFS + backtrack】LeetCode 93. Restore IP Addresses
  5. 验证二叉树后序遍历序列是否符合要求
  6. 常见熟知端口号的记忆技巧
  7. C++多线程map读写加锁
  8. opencv多目标追踪容器
  9. HDU 3832 Earth Hour
  10. input里面check 状态检测