JSP和JAVASCRIPT数据交互的问题

Jamesczh 2003-08-20 05:01:05
<%
String a;
a="good";
%>

<script>
var b=<%= a %>;
</script>

为什么这段代码会用问题?提示'good'未定义.
...全文
159 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yesjobjava 2003-08-20
  • 打赏
  • 举报
回复
你这样是不会出错的
<%!String a;%>
<%
a="good";
%>

<script>
var b="<%= a %>";
</script>
leier1979 2003-08-20
  • 打赏
  • 举报
回复
你用var就表示b要得到一个字符串,所以要加上"".
huanxiangzhe24 2003-08-20
  • 打赏
  • 举报
回复
应该是
<script language="javascript">
var b="<%=a%>";
</script>
guangjui 2003-08-20
  • 打赏
  • 举报
回复
总结的非常好。
mingjob 2003-08-20
  • 打赏
  • 举报
回复
JSP数据和JavaScirpt数据交互使用问题的一种解决方法
对于WEB程序来说,前端(JavaScript)和后端(JSP/Servlet)是没法共用数据的,只能是后端程序(JSP)把数据输出,生成页面到前端,这时候生成的页面中的JavaScript代码才有可能得到所谓jsp的数据。同样的,只有把JavaScript里的数据提交给后端JSP代码,JSP程序中才能得到JavaScript的数据。

那如何实现在页面的JavaScript中使用jsp中的数据或是在jsp中使用页面的JavaScript数据呢?

一、页面中的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>

二、页面中的JavaScript的数据如何使用后台的JSP程序的数据
这个比较简单,直接在JavaScript脚本中用<%=strVar1%>就可以把jsp程序中的数据传递给JavaScript脚本使用了。

参考下面的脚本:

<!-- html页面form表单,放置在html页面中的位置不限 -->
<form name="insertForm" method="post" action="yourJSP">
<input type="hidden" name="mc" value="">
</form>

<script language="JavaScript">
<!--
/***************************************************************
* JavaScript脚本,放置在页面中form以后的任何位置都可以
* 使用JavaScirpt获取JSP传递到页面中的变量varMC,
* 然后就可以在JavaScript中使用这个变量的值,通过
* JavaScript脚本赋值给form中的隐藏域。
***************************************************************/
var1 = "<%=varMC%>"; //获取JSP中的变量值
document.all.mc.value = var1;
//-->
</script>
mingjob 2003-08-20
  • 打赏
  • 举报
回复
因为b要获取一个字符串型的变量,你用var b="<%=a%>";就可以了。
diewikwang 2003-08-20
  • 打赏
  • 举报
回复
var b="<%=a%>";
cricketlj 2003-08-20
  • 打赏
  • 举报
回复
会有问题,在javascript里面不能用<%=%>,<%=%>用在jsp中,你可以在jsp中定义一个hidden
<input type="hidden" name="XXX" value="<%=a%>">
在javascript可以得到hidden的值。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧