jsp与js之间变量赋值

JavaScript016

jsp与js之间变量赋值,第1张

在写jsp中有时会需要把js的变量赋给java变量,或者将java的变量赋给js变量的情况,如果js处理的不好只能获取到undefined,java处理不好就只能获取到null。因此这次做个小笔记,记录一下~

java变量传给js:

var writer="<%=user.getUsername() %>" //这里的user是自己实例化的对象, 注意要将引号”"加上 ;否则alert(typeof (writer) )的值是undefined

java接收js传来的值:

js的值如果是undefined,那传到后台的值也就是null了。

通过request的getParameter的方法获取

1、通过request.getParameter("参数名")获取后台的值

2、通过<%=变量%>的方式赋给js变量

示例:

1

2

3

4

5

6

<script>

<%

String s2 = (String)request.getParameter("参数名")//获取后台参数给s2变量,<%%>表示这范围内是服务器解析的语言

%>

var s = '<%=s2%>'//输出s2给js变量s

</script>

jsp中是不能引用js变量的,jsp是服务端的,在服务器转发的时候数据已经定死在页面里面了

,而js是客户端的,可以不断通过客户端代码来修改js的值,因此js的值不能赋值给jsp的。如果硬要赋值的话可以虚拟一个表单提交,例如:

<form id="testForm" method="post" action="当前页面.jsp">

<input type='hidden' id="test1" name="val1" value="js的值">

</form>

<script>document.getElementById('testForm').submit()</script>

<% String val=request.getParamter('val1') %>

这样就可以了,但是表单已经提交过一次了,一次转发携带的数据将会丢失!