,但发布为另一应用时如 MyApp2 ,这个路径就不对了,也许这个情况比较少,但以 default 方式发布 Web 应用时以上绝对路径也不同: ” /images/title.gif” 。
解决
方案:
1)
采用绝对路径,但为了解决不同部署方式的差别, struts 标 签 的 路 径 前 加
在 所 有 非
${pageContext.request.contextPath} ,如原路径为:
”/images/title.gif” ,改为
“${pageContext.request.contextPath}/images/title.gif” 。
代码 ” ${pageContext.request.contextPath}” 的作用是取出 部署的应用
程序名,这样不管如何部署,所用路径都是正确 的。
缺点:
操 作 不 便 , 其 他 工 具 无 法 正 确 解 释 ${pageContext.request.contextPath}
2) 如:
采用相对路径,在每个 JSP 文件中加入 base 标签,
这样所有的路径都可以使用相对路径。
缺点:
对于被包含的文件依然无效。
真正使用时需要灵活应用1)和2) ,写出更加健壮的 代码。
PS:
这 里 要 注 意 的 是 如 果 用 了 上 面 的 ${pageContext.request.contextPath} 表达式的の时候那么你 的 web.xml 要保证头是这样的
xml j2ee?
xmlns:xsi="w3.org/2001/XMLSchema-instance" xsi:schemaLocation="java.sun/xml/ns/j2ee java.sun/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
确保是 2.4 的 schema