Struct_2路径问题
今天在自学那个Struct2的知识点的时候,发现那个相对路径和绝对路径有点遗忘。特地去看了视频还有在百度上查了一些资料。我觉得这个路径问题对于我这个初学者来说还是有点容易遗忘的。所以,今天就添加这个新随笔。
地址栏中访问 action 时 URL 基本是以 http://localhost:8080/Struts 开头
比如 <action name=”Factir” class=”test.FactirAction” namespace=”/”>
<result name=”success”> 要访问的 jsp 页面 </result>
</action>
这里有两种方式来写要访问的 jsp 页面,一种加“ / ”,另一种是不加“ / ”。
1) jsp 页面写成 /Pages/path.jsp, 那么就会从项目的根路径中开始找也就是,也就是 Struts 所在的根目录,在一层一层的下去找。
2) jsp 页面写成 Pages/path.jsp, 那么就会从当前路径开始找 ( 注意当前路径是指当前访问者请求的目录 ) ,在这个例子中的我们是通过请求 action ,进而间接访问到 jsp 文件的,所以当前路径应该就是 action 所在的路径,在本例中也就是 http://localhost:8080/Struts ,从这里可以看到当前路径就是根路径,所以两种方式都可以访问到 jsp 页面,如果当前路径不是根路径那么情况就不同了。
在页面中涉及到的路径问题。就是统一用绝对路径,这样子来解决我们的问题就会简单很多哦。在 jsp 文件中可以这样写来统一路径:
<%
String contextPath=request.getContextPath();
String basePath=requset.getScheme()+”://”+requset.getServerName()+”:”+request.getServerPort()+path+”/”;
%>
在 <head></head> 中写成这样
<base herf=”<%=basePath>”>
这说明在该页面中的所有路径都是于项目的 WebRoot 为相对路径。