道听途说Struts2之4:Path路径问题

          这几天写程序经常遇到路径问题,在使用servlet的时候,使用的映射路径,然后在servlet中跳转的时候经常使用..返回上一目录很麻烦。在Struts中同样也会有这种问题,在我们使用Action的时候经常会遇到。比如有如下的Struts.xml文件:

   

      <?xml version="1.0" ncoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="path" extends="struts-default" namespace="/path">
        <action name="path" >
            <result >/path.jsp</result>
        </action>
    </package>
</struts>

         这样我们在地址栏里输入:http://localhost/项目名/path/path,这样就会返回/path.jsp文件给客户端。地址栏会变成:http://localhost/项目名/path/path.jsp。如果这个jsp文件中有一个连接:<a href="index.jsp">index.jsp</a>(index.jsp在项目根目录下,并且和path.jsp同目录),这样我们一点这个连接的时候就会报告错误。而地址栏会变成http://localhost/项目名/path/index.jsp,服务器找不到这样目录结构的文件。但是在正常情况下,这样是成功的。这就是跳转问题,链接默认的是在相同目录中去寻找,这里的相同目录指的是,地址栏中的目录结构。但是Struts的跳转一多就会搞不清楚了。所以这里使用绝对路径。

         但是使用绝对路径不能像“/index.jsp”这样写,这样会跳转到网站的根目录,而不是项目的根目录。这里介绍一下myeclipse中的默认设置方法。在jsp的开头加上:

<%

String path = request.getContextPath();

String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

在后面需要写路径的时候就可以使用“<%=basePath %>index.jsp”了,这样就方便了许多。

还可以在网页中使用base标签:<base href="<%=basePath%>" />

这样在后面需要写路径的时候就可以使用“index.jsp”了,这样就更加方便。

上面代码中的方法意思,读者自己去查文档,或者百度吧。

希望写到这里说明白了,如果哪里错了,还请指出

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值