现在的位置: 首页 > 综合 > 正文

javaEE struts2中的路径问题

2013年10月12日 ⁄ 综合 ⁄ 共 1207字 ⁄ 字号 评论关闭

艰辛地学了3个月java,最近在做项目了,在期间遇到很多问题让我进步很多,老师说软件是改出来的而不是写出来的,现在我有那么一点点体味了!

 

废话不说那么多了,说说路径问题吧,我们知道路径有绝对路径和相对路径,在开发的过程中我建议使用绝对路径,因为使用绝对路径后不会出现因为文件夹相对的位置发生而失去一些效果的呈现,我总结了一下有以下几种情况:

1、在访问应用时,我们没有必要去把请求的action的名字写出来,我们可以充分利用eslipse创建webprojject时创建的index.jsp这个文件,第一种方法是我们可以在里面做转发:response.sendRedirect()方法,第二种是我们可以更改web.xml中的配置,把下面welcome元素中的insex.jsp文件名字改成和index.jsp放在同一路径下的我们自己的jsp文件,这样我们需要一输入访问的ip和端口号和应用名就能直接访问这个页面了。

 

2、jsp中,有一个很重要的资源,那就是${pageContext.request.contextPath} 这个资源,它可以获得当前的应用名,也就是我们所说的根路径起始,这样我们就可以不用把根写死了,因为以后的应用会进行域名解析,解析后的名字就不等于你直接写的那个应用名了:举个例子吧,假如你在做一个当当项目通过http://172.0.0.1:8080/dangdang/可以访问到你的首页,然后你在所有使用绝对路劲的地方都写了
dangdang/.....这样就不好办了,因为要发布你的应用需要将你的应用名进行解析成域名,dangdang这个词解析后就变成其他的字母了,如此一来你在jsp中或者超链接中写的dangdang这个词就没用了!!!

 

3、在什么地方可以用${pageContext.request.contextPath}这个el表达式呢?

第一:jsp的超链接中

第二:如果一个jsp要引用另一个jsp这是也可以用:<%@ include page="${pageContext.request.contextPath}....."%>或者是forward

其他地方嘛,遇到了再说!

 

4、另外 struts2的路径问题也是很头疼的!在此给以下建议:

a、在jsp中写超链接时,建议规范:${pageContext.request.contextPath}/namespace/actionName/这样的规范,这样就不会出错!有一种情况是我们只写namespace/actionName而且你的action中继承了ActionSupport,里面有很多方法,当你在进行这样的访问跳转时会在地址栏中出现一连串的namespace很烦人的!

b、表单的action 建议规范:${pageContext.request.contextPath}/namespace/actionName/。。字数有限,待续!

抱歉!评论已关闭.