我在
中写了javascript代码myjsp.jsp
<%
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
,它就会将id
的值显示在警告框中,并且还会生成id为 mytext 将被禁用。
因此,当我执行 myjsp.jsp 页面而不传递参数时,它会将输出显示为 TRYnull ,但是当我将值传递给{时{1}}然后它没有显示任何内容,甚至没有显示警告框。任何想法!!
我的jsp页面
id
答案 0 :(得分:3)
这种情况正在发生,因为当您没有传递id
的请求参数时,正如您所提到的那样,它将是null
。在这种情况下,将生成以下JavaScript:
alert("TRY" + null);
这是有效的JavaScript,因此这就是您看到TRYnull
。
但是,如果您传入id
请求参数,则会生成以下JavaScript:
alert("TRY" + foo);
虽然这是语法上有效的JavaScript,但几乎可以肯定会产生错误(因此不会显示alert
),因为此处foo
是一个很可能是undefined
的变量
如果您查看JavaScript控制台,您可能会看到类似的内容:
Uncaught ReferenceError: foo is not defined
你需要做什么在你的scriptlet上加上引号,以便id
的值被视为String
而不是变量,即
alert("TRY <%= id %>");