0

我有一个 JSP 文件,其中包含另一个 JSP 文件。在他们两个中,我都需要一个特殊的变量。这是包含另一个 JSP 的 JSP 代码的一部分:

<%String logged = request.getParameter("logged");
out.print(
 "<h3> Auftragliste </h3>" + "Eingeloggt als: "
+ logged
+ "<br /><hr /><br />");
%>

<!-- DAS IST DIE EIGENTLICHE AUFTRAGLISTE, INNERHALB DES DIVS -->
<div id="AutoUpdte">
    <jsp:include page="AuftragListe.jsp" />
</div>

这个“记录”的请求工作正常。现在这里是包含的 JSP 的一部分:

+ "<form method='POST' "
        + "name='Auftrag"
        + i
        + "' action='Annehmen'>"
        + "<input type='hidden' name='ID' value='"
        + auftraege.get(i).ID
        + "' />"
        + "<input type='hidden' name='von' value='"
        + auftraege.get(i).von
        + "' />"
        + "<input type='hidden' name='nach' value='"
        + auftraege.get(i).nach
        + "' />"
        + "<input type='hidden' name='object' value='"
        + auftraege.get(i).object
        + "' />"
        + "<input type='hidden' name='reward' value='"
        + auftraege.get(i).reward
        + "' />"
        + "<input type='hidden' name='logged' value='"
        + logged
        + "'>"
        + "<center>"
        + "<input class='auftragannehmen' type='submit' value=''/> "
        + "</center>"
        + "</form>"

在这个 JSP 中,我像上面那样请求变量“logged”。但是当我单击按钮并且表单开始下一步时无法访问“记录”变量。

我的错误在哪里?

谢谢!

编辑:包含的 JSP 绝对不能访问该变量。但是它如何访问这个变量呢?

4

2 回答 2

0

使用请求属性传递“记录”值

request.setAttribute("myLogged",logged);

读取包含的 JSP 文件中的属性值,如下所示:

String logged = request.getAttribute("myLogged");

要不就

 ${myLogged}
于 2012-07-07T02:16:47.090 回答
0

请求通常用于存储处理请求的所有 servlet 和 JSP 必须能够访问的属性。但是在这里,它是不必要的,因为变量是请求参数的值。就像request.getParameter("logged")在父 JSP 中一样使用。

也就是说,您似乎完全忽略了使用 JSP 的要点,即避免使用 Java 代码和丑陋的字符串连接(可以直接从 servlet 完成)生成 HTML 标记。学习 JSTL 和 JSP EL,并避免像 JSP 中的瘟疫一样的 scriptlet。例如,您的第一个 scriptlet 应重写为:

<h3> Auftragliste </h3>
Eingeloggt als: <c:out value="${param.logged}"/>
<br /><hr /><br />

请注意,<c:out>此处的使用确保参数正确地进行了 HTML 转义,从而避免了各种 XSS 攻击。

于 2012-07-05T17:07:21.653 回答