我想根据请求属性值包含一个文件。
${theme} -> themeA
总结一下。我想要这样的东西:
<%@ include file="../themes/${theme}/jsp/content/welcome.jsp"%>
任何简单的解决方法?
<c:import url="../themes/${theme}/jsp/content/welcome.jsp"/>
不适用于 <%@ include%> 因为那是静态/编译时包含。您可以改为使用 <jsp:include> 标记,该标记在运行时进行评估,并包含执行该页面的结果,而不是在编译时包含页面本身。
要比较 include 指令和 <jsp:include> 之间的所有差异,请查看JSP2.0 参考
<jsp:include page="../themes/${theme}/jsp/content/welcome.jsp">
如果您使用 JSTL,<c:import> 标记也可以使用。