
在写jsp中有时会需要把js的变量赋给java变量,或者将java的变量赋给js变量的情况,如果js处理的不好只能获取到undefined,java处理不好就只能获取到null。因此这次做个小笔记,记录一下~
java变量传给js:
var writer="<%=usergetUsername() %>" //这里的user是自己实例化的对象, 注意要将引号”"加上 ;否则alert(typeof (writer) );的值是undefined
java接收js传来的值:
js的值如果是undefined,那传到后台的值也就是null了。
jsp里的java代码是在服务器上执行的,而js是在客户端执行的。执行顺序是先进行java执行后发给客户端再运行js,所以同一个页面里的java代码是获取不到js变量的,那个时候js都还没执行,js内存都没分配呢,就不会js变量的。
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>documentgetElementById('testForm')submit()</script>
<% String val=requestgetParamter('val1') %>
这样就可以了,但是表单已经提交过一次了,一次转发携带的数据将会丢失!
getParamter
;Paramter是参数的意思,你从页面的form传入后台的数据,都用这个方法取。
getAttribute,attribute是属性的意思,request也是个对象嘛,你放进去什么属性,你就可以取什么属性。明白了吗?
所以,只有getParamter
却没有setParamter方法,
而
getAttribute,
setAttribute都用,因为你只有set属性之后,你才能get属性
一般是这么用的
,你在action里先用getParamter
,获得页面表单里的数据,经过处理后,你在用setAttribute把你要返回的数据放到request里,之后,你在jsp页面上,就可以用getAttribute获得你刚才放入的数据了,别忘了类型转化,用getAttribute得到的类型都是Object的,你还要强制转为你需要的类型
通过request的getParameter的方法获取
1、通过requestgetParameter("参数名")获取后台的值
2、通过<%=变量%>的方式赋给js变量
示例:
<script><%
String s2 = (String)requestgetParameter("参数名");//获取后台参数给s2变量,<%%>表示这范围内是服务器解析的语言
%>
var s = '<%=s2%>';//输出s2给js变量s
</script>
以上就是关于jsp与js之间变量赋值全部的内容,包括:jsp与js之间变量赋值、jsp 中java代码怎么直接获取js里的变量、如何在jsp中引用js变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)