日期:2014-05-19  浏览次数:20596 次

不同目录的页面调用同一个Action,路径处理问题
struts2里配置了这么个Action:

<action name="showTopic" class="TopicAction" method="listTopic">
<result name="success">/forum/topicshow.jsp</result>
</action>

然后我在/forum/a.jsp里可以调用showTopic的Action,可以正常返回topicshow.jsp以及里面的样式是正确的,
但是我在其他不同目录的页面比如:

|———main.jsp
|------/forum
  |---style.css
  |----topicshow.jsp

我在main.jsp页面里调用showTopic这个Action的话,返回的topicshow.jsp里的样式就无法加载,路径有问题。

另:
  每个页面都include一个头文件,这个头文件的一些菜单按钮是调用某个方法的,当我链接进入到某个文件夹下面的页面时,再点击头文件的按钮,也会出现路径问题。

怎么解决这个问题呢?本人新手,请大家指点。。。。。




------解决方案--------------------
注意到你用Action所引用的页面的时候,浏览器所知道的访问路径,并不是你JSP页面在服务器上的实际路径,因为这是服务器端forward,真实路径被中间件所隐藏了。

因此,JSP中引用任何其它资源文件时,建议使用绝对路径进行引用,比如:

<% String cp = request.getContectPath() %>
<img src="<%=cp%>/image/hello.jsp" />