java - JSP 中的字符串在 JavaScript 中不起作用

标签 java javascript jsp

<%for (String st : geocodePhoto.keySet()) {%>


        alert(<%=st%>); // not work
        alert(<%=geocodePhoto.get(st).getX()%>); // work fine
        alert(<%=geocodePhoto.get(st).getY()%>); // work fine
        alert(<%=geocodePhoto.get(st).getDate()%>); // not work
    <%}%>

getX 返回 double 值,getDate 返回字符串值,如 'yy:mm:dd hh:mm:ss'

st 具有相同的形式“yy:mm:dd hh:mm:ss”

2,3 行警报工作正常,但 1,4 行警报不起作用

出了什么问题?

最佳答案

<%= %> JSP 中的标记的行为就好像它调用 String.valueOf() 以标记中的表达式作为参数,并将返回值写入输出。因此,您生成的 JavaScript 源代码可能如下所示:

alert(13:11:23 10:30:17);
alert(-0.06);
alert(51.5);
alert(13:11:23 10:30:17);

您正在尝试将文本传递给第一次和最后一次调用 alert ,但您没有将文本放在引号中 - 因此,您会收到语法错误。中间的两个调用将数字写入 JavaScript 源代码 - 由于数字常量是有效的 JavaScript,因此它们无需引用即可工作。

因此,您的 JSP 代码应如下所示:

alert("<%=st%>");
alert(<%=geocodePhoto.get(st).getX()%>);
alert(<%=geocodePhoto.get(st).getY()%>);
alert("<%=geocodePhoto.get(st).getDate()%>");

关于java - JSP 中的字符串在 JavaScript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20161122/

相关文章:

java - 向数组添加数据时如何删除括号

java - GWT 在开发模式下强制更新服务器

java - 如何配置 logback 以跳过来自 org.package.* 的所有级别低于 WARN 的日志消息?

javascript - 从 Docker 内部调试 Node.js 应用程序

java - 尽管事先已填充,文本区域和其他输入仍返回 null

java - OnClick 方法杀死 Android 应用程序

javascript - 闭包是否记住引用或变量

javascript - Angular JS 路由不起作用

java - 如何使用自定义ErrorController返回jsp?

javascript - 重新加载网页 - 浏览器 "back"按钮 (HTML/JSP)