Struts2中的路径问题总结
1. ?Struts2 一个要匹配路径的地方就是在处理完请求之后对页面进行分发的时候,也就是 result 元素里面的内容。
</action>
1)jsp页面写成/Pages/path.jsp,那么就会从项目的根路径中开始找也就是,也就是Struts所在的根目录,在一层一层的下去找。
2)jsp页面写成Pages/path.jsp,那么就会从当前路径开始找(注意当前路径是指当前访问者请求的目录),在这个例子中的我们是通过请求action,进而间接访问到jsp文件的,所以当前路径应该就是action所在的路径,在本例中也就是http://localhost:8080/Struts,从这里可以看到当前路径就是根路径,所以两种方式都可以访问到jsp页面,如果当前路径不是根路径那么情况就不同了。
2. 在页面中涉及到匹配路径的问题,在这里我们要弄清楚一个小知识点:在jsp页面中“/”指的是整个站点根路径也就是这里的“http://localhost:8080/”,而不是webapps所在的根路径。
<base href=”<%=basePath%>”/>
?这个意思是指这个jsp页面里所有的<a href=“”/>连接都会在前面加上basePath,不仅仅是这对于<head></head>中的:
<link rel="stylesheet" href="style/css/index.css" type="text/css"media="screen" charset="utf-8" /><script src="style/js/jquery.js" type="text/javascript"></script>
?也是起作用的。
?
??? 我在网上看到有个使用这样解决的,这里也记录一下:
结构:WebRoot| common | css | common.css |js |common.js<link rel="stylesheet" type="text/css"href="<c:url value='/common/css/common.css' />" /><script language="javascript" type="text/javascript"src="<c:url value='/common/js/common.js'/>"></script>然后在jsp 页面中用<c:url>的方式导入css 就永远没有存在跳转后css 无效了,同理js 也一样? 1 楼 akunamotata 2011-02-17 引用 这个意思是指这个jsp页面里所有的<a href=“”/>连接都会在前面加上basePath,不仅仅是这对于<head></head>中的:
那我要是这个链接是其他webapp下的呢? 2 楼 dwbin 2011-02-17 我觉得最关键的就是这一句String contextPath=request.getContextPath();
搞明白了什么叫做contextPath就什么都明白了。我对这个的解释叫做上下文路径,容器路径,web标准里面取到后台的URL是容器路径之后的部分。 3 楼 lsf_demo 2011-03-10 路过此地... 4 楼 09108082 2011-06-02 绝对路径就是王道