【问题标题】:Multiple Params in JSP IncludeJSP中的多个参数包含
【发布时间】:2024-01-11 20:56:01
【问题描述】:

这一行:

/${initParam['webinf']}${initParam['test']}header.jsp

打印出来:

/WEB-INF/test/header.jsp 如果我将其复制到:

<%@ include file="/WEB-INF/test/header.jsp" %> 完美运行。

但是,如果我直接在这样的语句中使用第一行代码:

<%@ include file="/${initParam['webinf']}${initParam['test']}header.jsp" %>

我得到错误:

Sun Feb 16 15:03:56 GMT 2014: org.apache.jasper.JasperException: /WEB-INF/test/index.jsp (line: 10, column: 9) File "/${initParam['webinf']}${initParam['test']}header.jsp" not found

【问题讨论】:

  • 包含指令不解析 EL。动态包含可能,或者您可以使用更像实际模板的东西。静态包含发生在编译时,值未知,并且不进行后期评估。
  • 使用动态包含?但是,使用上下文参数有什么意义呢?更容易更改 JSP,无需重新启动。

标签: java jsp servlets jstl el


【解决方案1】:

你应该使用

  <jsp:include page="..." /> 

这将评估 "..." 中的 JSP EL。

更多信息在这里Include another JSP file

【讨论】: