java/jsp 代码中的 javascript

标签 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 为 < strong>mytext 将变为禁用。

因此,当我执行 myjsp.jsp 页面而不传递参数时,它将输出显示为 TRYnull,但是当我将值传递到 id 那么它不会显示任何内容,甚至没有显示警报框。任何想法!!

我的jsp页面

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
       <%
try {
    String id=request.getParameter("id");
%>
    <script type="text/javascript" >
        alert("TRY"+ "<%=id %>");
        alert(document.getElementById("mytext"));
    </script>
<%
} catch (Exception e) {
%>
    <script type="text/javascript" >
        alert("CATCH"+<%=e%>);
    </script>
<%
}
%>

            <input id="mytext" name="mytext" />
    </body>
</html>

最佳答案

发生这种情况是因为当您未传递 id 的请求参数时,正如您所提到的,它将为 null。在这种情况下,将生成以下 JavaScript:

alert("TRY" + null);

这是有效的 JavaScript,因此这就是您看到 TRYnull 的原因。

但是,如果您传入 id 请求参数,则会生成以下 JavaScript:

alert("TRY" + foo);

虽然这在语法上是有效的 JavaScript,但几乎肯定会产生错误(因此不会显示 警报),因为这里 foo 是一个变量,很可能未定义

如果您查看 JavaScript 控制台,您可能会看到类似以下内容的内容:

Uncaught ReferenceError: foo is not defined

您需要做的就是在 scriptlet 周围加上引号,以便将 id 的值视为 String 而不是变量,即

alert("TRY <%= id %>");

关于java/jsp 代码中的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9617676/

相关文章:

javascript - 非常简单,非常流畅,JavaScript 跑马灯

java - session 变量在第一次请求后变为空

java - 我的某些 jsp 页面在 Firefox 中无法运行,但这些页面在 IE 中运行良好?

java - 如何在 JSP 中清洁打印 Collections 对象

java - jSTL <c :if> tags not working in jsp file, 在 tomcat 7 中出现错误

javascript - 如何找到与特定正则表达式匹配的字符串?

javascript - 如果 div 具有特定类别,则更改跨度的文本

javascript - 使用 Mantra 从 Meteor 中的回调方法传递值

javascript - 如何在 onclick 事件后为具有相同类的所有元素设置文本删除线?

java - 根据另一个下拉列表选择填充下拉列表