Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包含在jsp中的变量?_Jsp_Variables_Include - Fatal编程技术网

包含在jsp中的变量?

包含在jsp中的变量?,jsp,variables,include,Jsp,Variables,Include,我有一个包含另一个JSP文件的JSP文件。在这两个变量中,我都需要一个特殊的变量。 这是包含其他JSP的JSP代码的一部分: <%String logged = request.getParameter("logged"); out.print( "<h3> Auftragliste </h3>" + "Eingeloggt als: " + logged + "<br /><hr /><br />"); %> <

我有一个包含另一个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中,我请求上面记录的变量。但是,当我单击按钮,表单开始下一步时,无法访问记录的变量

我的错在哪里

谢谢大家!


编辑:包含的JSP肯定无法访问变量。但是它如何访问这个变量呢?

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

也就是说,您似乎完全错过了使用JSP的要点,即避免使用Java代码和难看的字符串连接生成HTML标记,这些可以直接从servlet完成。学习JSTL和JSPEL,避免像JSP中瘟疫一样的脚本。例如,您的第一个scriptlet应重写为:

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

请注意,使用here可确保参数正确进行HTML转义,从而避免各种XSS攻击。

使用请求属性传递“logged”值

request.setAttribute("myLogged",logged);
读取包含的JSP文件中的属性值,如下所示:

String logged = request.getAttribute("myLogged");
或者只是

 ${myLogged}

当我将我的第一个scriplet更改为您的代码时,整个页面将不再工作:splese definished。到底发生了什么?当然,与每个taglib一样,它的实现必须在webapp的类路径中,并且taglib必须在JSP的顶部声明。请参阅,并在使用它之前花一些时间了解它是如何工作的。父JSP无法访问记录的变量,这一点当然很清楚。但还有另一个问题。我们不允许使用这个。我们的教授说,我们不允许在代码中使用任何需要$a的东西:SUnless这个限制是合理的,因为他想稍后教你EL,选择另一所学校:你的老师不教最佳实践,而且被困在2000年。否则,请使用包含在JSP中的request.getParameterlogged。我尝试了request.getParameterlogged,它适用于父JSP,但不适用于包含的JSP。我不知道为什么: