2

我有许多 jsp 文件row1.jsp, row2.jsp, row3.jsp, ..., row10.jsp,我想将它们包含在我的主 jsp 页面中。

这里的诀窍是我想随机化它们的呈现方式,所以有时它们是这样包含的:

<%@include file="/index-rows/row1.jspf"%>
<%@include file="/index-rows/row2.jspf"%>
<%@include file="/index-rows/row3.jspf"%>

其他时候:

<%@include file="/index-rows/row2.jspf"%>
<%@include file="/index-rows/row1.jspf"%>
<%@include file="/index-rows/row3.jspf"%>

我尝试了以下方法,但我意识到我无法<%= %><%@include>标签中添加 a 。

<%
HashMap<String, String> foo = ...some code...
String[] pages = { "row1.jspf", "row2.jspf", "row3.jspf" };
for (String p : pages) {
     %><%@include file="/index-rows/<%= p %>"%><%
}
%>

条件:包含的文件使用变量foo

4

1 回答 1

4

<%@ include %>是一个静态包含指令。这意味着它是在编译时评估的,因此不能使用动态文件名。

使用动态包含来做你想做的事:<jsp:include page="..."/>. 不过,您需要将foo请求属性存储在包含的页面中才能使用它。

请学习如何使用 JSP EL。不应再使用 Scriptlet。

于 2012-10-13T09:17:14.303 回答