在WebSphere 6上使用可变文件名的JSP中包括静态文件6
-
04-10-2019 - |
题
我正在努力将静态文件包含在我的JSP中 WebSphere 6.0.2.17. 。我尝试了:
<% final String MY_DIR = ResourceBundle.getBundle("mybundle").getString("props.pages.wcm"); %>
<% final String page = ResourceBundle.getBundle("mybundle").getString("page"); %>
<% final String inc = MY_DIR + "/" + bonus; %>
<%@include file="<%= inc %>"%>
路径是/wcm/some/other/other/dir/page,我可以很高兴地打印出来 out.write(inc)
. 。不幸的是 include
(和 jsp:include
)根本不包括文件。没有错误消息,但不包括内容...但是可以通过浏览器访问该文件。
我是否必须创建一个完整的JSP才能正常工作?我只需要一个HTML文件。
更新
由于迟早会包含更多页面,因此我决定为这种情况创建一个自定义Taglib。这样,我可以限制功能并在属性文件中设置我的静态内容的基本目录。
解决方案
尝试使用requestDisPatcher.include():
<%
RequestDispatcher r = request.getRequestDispatcher(inc);
r.include(request, response);
%>
这就像包括指令一样,除了您所包含的任何页面都将每次处理(如果是JSP或Servlet)。当指令居住的JSP文件被编译时,Inclusta Divestive仅处理一次页面。
其他提示
我尝试了 jsp:include
并且该文件完美包含。
请记住,您必须提供相对路径,而不是绝对路径。
不隶属于 StackOverflow