struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。
解决办法非常简单,统一使用绝对路径。但是还有一个问题在struts2中“/”相当于:http://localhost:8080/a/,而在tomcat中“/”只是相当于:http://localhost:8080/。还是有解决办法,记得用myeclipse的时候jsp页面前面它都要自动生成一段东西,那个东西现在这里就用到了:
在使用路劲的时候就这样:<a><%=basePath %>b.jsp</a>。
如果觉得每个跳转都要这样写也麻烦,那就加一句话到head里面(<base href="<%=basePath%>" /> ),还可以这样:
但是这样做问题是解决了,还是太好。记得我以前参加的一个项目里面是用的绝对路劲,当时觉得相对路劲不是很简单吗,还可以少写些代码,当时没有想到比如一个jsp页面位置可以能变化,那还要改代码。现在上班这里代码质量要求更高了,页面跳转必须(一定是必须)全部用后台跳转。现在才突然觉悟了,好处也体会到了。这样做而且还可以统一管理,当一个人来跟踪代码是,不用考虑它是前台跳转的还是后台跳转的,直接去配置文件里面看就行了。俗话说约定优于配置嘛,现在我们项目组的口号也是让任何人拿到任何一段代码都感觉就是自己写的代码一样。