java / jsp代码中的javascript

时间:2012-03-08 12:28:22

标签: javascript jsp

我在

中写了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

1 个答案:

答案 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 %>");