JSP和JavaScript的交互传值问题

时间:2022-08-27 07:52:30
在Javascript中,可以用<%=JSPVAR%>得到JSP变量的值
在同一个函数中,有什么办法可以在
<%
%>
内把JavaSCript变量的值赋给JSp呢?
不用hidden来传.
谢谢!

8 个解决方案

#1


一、页面中的JavaScript的数据如何提交给后台的jsp程序
① 可以将JavaScript的数据以xxx.JSP?var1=aaa&var2=bbb的形式作为URL的参数传给JSP程序,此时在jsp中用
<%String strVar1=request.getParameter("var1");%>就可以获取到JavaScript脚本传递过来的数据;
② 使用JavaScript通过在表单里加入隐藏域信息,然后用表单提交的方式把数据传递给JSP程序。
参考下面的脚本:
<script language="JavaScript">
<!--
/***************************************************************
 * JavaScript脚本,放置在页面中的任何位置都可以
 * insertclick()函数获取JSP传递到页面中的变量varMC,
 * 然后就可以在JavaScript中修改这个变量的值,再通过
 * post的方式提交给JSP程序来使用。
 ***************************************************************/
function insertclick(){
  var1 = document.all.mc.value;    //获取页面form中的变量值
  var1 = var1 + "名称";
  document.insertForm.submit();
}
//-->
</script>

<!-- html页面form表单,放置在html页面中的位置不限 -->
<form name="insertForm" method="post" action="yourJSP">
<!-- 下面这一句是获取JSP程序中传递过来的变量值 -->
<input type="hidden" name="mc" value="<%=varMC%>">
<input type="button" value="提交" onclick="insertclick()">
</form>

#2


javascript运行在客户端,jsp运行在服务器
只有通过提交,才能把javascript的值传给jsp

#3


不传怎么得到,一个是客户端,一个是服务器

#4


我不要用hidden啊!
我通过JSP变量动态生成多个页面的元素
<%
   for(int intSet=1; intSet<=3;intSet++) {  %>
     <input type="text" size="50" name="path_<%=intSet%>" value="" >
  <%}%>
然后在JavaScript中

path_<%=intSet%> 来动态控制

if(...){
path_<%=intSet%>.focus();}
为了动态控制,这里我用path_<%=intSet%>。。。
这里我在把JavaScript值赋给JSP变量时遇到了困难。。
那有什么办法通过JavaScript变量来动态生成
path_1,path2,path3 么?




#5


你换一个思路去做吧,你这个做法是行不通的,你要弄清楚原理先:

对于WEB程序来说,前端(JavaScript)和后端(JSP/Servlet)是没法共用数据的,只能是后端程序(JSP/Servlet)把数据输出,生成页面发送到前端,这时候生成的页面中的JavaScript代码才有可能得到JSP程序中的数据。同样的道理,只有把JavaScript里的数据提交给后端JSP代码,JSP程序中才能得到JavaScript的数据。

试试别的实现方式吧。

#6


可能我要用eval吧!

#7


不可以

#8


我用eval就不必用JSP变量了
多谢各位

#1


一、页面中的JavaScript的数据如何提交给后台的jsp程序
① 可以将JavaScript的数据以xxx.JSP?var1=aaa&var2=bbb的形式作为URL的参数传给JSP程序,此时在jsp中用
<%String strVar1=request.getParameter("var1");%>就可以获取到JavaScript脚本传递过来的数据;
② 使用JavaScript通过在表单里加入隐藏域信息,然后用表单提交的方式把数据传递给JSP程序。
参考下面的脚本:
<script language="JavaScript">
<!--
/***************************************************************
 * JavaScript脚本,放置在页面中的任何位置都可以
 * insertclick()函数获取JSP传递到页面中的变量varMC,
 * 然后就可以在JavaScript中修改这个变量的值,再通过
 * post的方式提交给JSP程序来使用。
 ***************************************************************/
function insertclick(){
  var1 = document.all.mc.value;    //获取页面form中的变量值
  var1 = var1 + "名称";
  document.insertForm.submit();
}
//-->
</script>

<!-- html页面form表单,放置在html页面中的位置不限 -->
<form name="insertForm" method="post" action="yourJSP">
<!-- 下面这一句是获取JSP程序中传递过来的变量值 -->
<input type="hidden" name="mc" value="<%=varMC%>">
<input type="button" value="提交" onclick="insertclick()">
</form>

#2


javascript运行在客户端,jsp运行在服务器
只有通过提交,才能把javascript的值传给jsp

#3


不传怎么得到,一个是客户端,一个是服务器

#4


我不要用hidden啊!
我通过JSP变量动态生成多个页面的元素
<%
   for(int intSet=1; intSet<=3;intSet++) {  %>
     <input type="text" size="50" name="path_<%=intSet%>" value="" >
  <%}%>
然后在JavaScript中

path_<%=intSet%> 来动态控制

if(...){
path_<%=intSet%>.focus();}
为了动态控制,这里我用path_<%=intSet%>。。。
这里我在把JavaScript值赋给JSP变量时遇到了困难。。
那有什么办法通过JavaScript变量来动态生成
path_1,path2,path3 么?




#5


你换一个思路去做吧,你这个做法是行不通的,你要弄清楚原理先:

对于WEB程序来说,前端(JavaScript)和后端(JSP/Servlet)是没法共用数据的,只能是后端程序(JSP/Servlet)把数据输出,生成页面发送到前端,这时候生成的页面中的JavaScript代码才有可能得到JSP程序中的数据。同样的道理,只有把JavaScript里的数据提交给后端JSP代码,JSP程序中才能得到JavaScript的数据。

试试别的实现方式吧。

#6


可能我要用eval吧!

#7


不可以

#8


我用eval就不必用JSP变量了
多谢各位