包含在jsp中的变量?
我有一个包含另一个JSP文件的JSP文件。在这两个变量中,我都需要一个特殊的变量。 这是包含其他JSP的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 />"); %> <
<%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。我不知道为什么: