大家都知道如何在JSP中包含文件...
我有两个文件:
one.jsp two.jsp
在two.jsp中,我有以下代码:
Long something = 0;
在one.jsp代码中:
<%@include file='two.jsp'%>
<%@include file='two.jsp'%>
我已经两次包含了同一个文件,这意味着会出现错误,因为某些变量将被创建两次,对吗?因此,在第二次包含文件之前,我应该检查一下,如果已经包含了一次,那么就不应再次包含它,如何检查呢?
在php中有include("file.php")的函数,它将包含文件。还有include_once("file.php")的函数,如果之前没有包含过该文件,则会包含文件。有没有其他解决方案?
<% %>
内的Java代码)被认为是不良实践。您应该使用统一表达式语言和JSTL。 - Xavi Lópezinclude_once()
相当的东西,你只能自己进行检查,例如使用一个包含已经包含页面名称的HashSet
。请考虑静态和动态导入之间的区别。如果您使用静态导入,则该页面将始终被包含。因此,您的解决方案是使用动态导入(<jsp:include>
),并将它们放在检查页面是否已经被包含的if
中。为了检查这一点,您可以使用在顶层页面中声明的全局Set
变量,或将其作为属性放入请求中。 - Xavi López"some.jsp"
添加到HashSet
中。我已经将此添加到未经测试的代码片段中... - Xavi López