【发布时间】:2011-02-02 21:23:54
【问题描述】:
我试图在我的 jsp struts2 页面中引入一些逻辑。如果从会话变量返回的列表为空,那么我想对其进行迭代。如果它不为空,那么我想使用现有列表。下面是我的代码,但编译器抱怨它们是两个迭代器是标签,但只有一个结束标签。
<%
java.util.List eventL = (java.util.List)session.getAttribute("eventList");
if(eventL != null){
System.out.println("SIZE LIST IS "+eventL.size());
%>
<s:iterator value="eventL" var="event">
<%
}
else
{
%>
<s:iterator value="eventList" var="event">
<% } %>
我是否也正确地遍历了会话变量返回的列表?
谢谢
【问题讨论】:
-
我不知道如何在 struts2 中实现这一点,但我至少可以看出 scriptlets 和 taglibs 并没有像您期望的那样共享相同的变量范围编码。有一些变通方法(实际上是黑客攻击),但通常的做法是使用其中一个,而不是两者都使用。由于自 JSP 2.0(十年前)以来不鼓励使用 scriptlets,因此最好只使用标记库。换句话说,在 JSP 中摆脱所有那些
<% %>的东西。另见How to avoid Java code in JSP files?