在struts2的配置文件中获取项目根目录(转载)
在工作中多次这种情况:需要再struts2的配置文件中获取项目的根路径。比如,某个action的result是a.jsp,他是一个信息显示的页面,显示信息5秒之后它会跳转到本项目中的另外一个页面,这个a.jsp需要一个GET参数就是本项目根目录下的一个页面b.jsp,这样a.jsp在显示完信息后会跳转到b.jsp,如果你直接把result写成如下这样:

<result name="success">
/a.jsp?url=/b.jsp
</result>
<result name="success">
/a.jsp?url=/b.jsp
</result>

那么你会发现,a.jsp5秒之后跳转的url为/b.jsp,而并不是诸如:http://localhost:8080/b.jsp,也就是说,传递给a.jsp的url是个绝对参数,而不是相对参数。
解决办法就是在/b.jsp前面加上本项目的根目录,但是如何在struts2的配置文件中获取本项目的根目录呢?多次google未果,于是自己研究。struts2 的配置文件可以使用ognl表达式,在配置文件中使用ognl表达式的方法就是在 ${ } 的大括号之间放入ognl的变量,比如${request}就可以在struts.xml配置文件中获取request,既然可以获取request了,那么获取根目录也就简单了,这样:${request.contextPath}。于是上面的例子就可以改为:

<result name="success">
/a.jsp?url=${request.contextPath}/b.jsp
</result>

出处:http://blog.csdn.net/hisenseme/archive/2010/08/30/5849843.aspx

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()