java/jsp代码中的javascript
我已经在里面编写了javascript代码 myjsp.jspjava/jsp代码中的javascript,javascript,jsp,Javascript,Jsp,我已经在里面编写了javascript代码 myjsp.jsp <% try { String id=request.getParameter("id"); %> <script type="text/javascript" > alert("TRY"+ <%=id %>); document.getElementById("mytext").readonly="readonly"; </scrip
<%
try {
String id=request.getParameter("id");
%>
<script type="text/javascript" >
alert("TRY"+ <%=id %>);
document.getElementById("mytext").readonly="readonly";
</script>
<%
} catch (Exception e) {
%>
<script type="text/javascript" >
alert("CATCH"+<%=e%>);
</script>
<%
}
%>
发生这种情况的原因是,当您没有传递
id
的请求参数时,正如您所提到的,它将是null
。在这种情况下,将生成以下JavaScript:
alert("TRY" + null);
这是有效的JavaScript,所以这就是为什么会看到TRYnull
但是,如果传入id
请求参数,将生成以下JavaScript:
alert("TRY" + foo);
尽管这在语法上是有效的JavaScript,但几乎肯定会产生错误(因此不会显示警报
),因为这里foo
是一个很可能是未定义的变量
如果查看JavaScript控制台,您可能会看到如下内容:
Uncaught ReferenceError: foo is not defined
您需要做的是在scriptlet周围加引号,以便id
的值被视为字符串而不是变量,即
alert("TRY <%= id %>");
alert(“TRY”);
JSP和JavaScript不同步运行。JSP生成HTML/JavaScript。在浏览器中打开页面,右键单击该页面并查看源代码以查看您自己。仅供参考,如果异常是例如不可解析日期,并且带有双引号,则将在浏览器控制台中显示错误!
alert("TRY <%= id %>");