如果我的jsp文件结构如下:我在test.jsp文件中有一个链接,点击该链接,会触发addmodel.action,然后会跳转到model/addmodel.jsp页面。
因为是测试,addmodel.jsp页面中只有如下内容:
<img src="../../images/huitailang.gif"/>
我的struts.xml内容如下:
<struts>
        <constant name="struts.i18n.encoding" value="utf-8" />
        <package name="account" extends="json-default">
        <action name="addmodel" class="account.action.AccountAction" method="addmodel">
            <result name="success">/model/tree/addmodel.jsp</result>
        </action>
    </package>
    </struts>
我的问题是这样的:当我test.jsp页面链接地址写成<a href="addmodel.action">添加模型</a>,则addmodel.jsp页面的图片加载失败,看了一下图片地址是:http://127.0.0.1:8000/images/huitailang.gif这个地址缺少了我的项目名(myJavaEE),自然是不对的,但是我该写成什么地址才是对的呢?这个问题困扰我很久了,以前就睁一只眼闭一只眼过去了,这次真的想把这个问题弄清楚。求助各位。

解决方案 »

  1.   

    是的,个人认为从一开始有个好的编程方式,以后可以节省不少这些调试时间, 你用<%=path%>或者是<c:url value=''/>这两种方式都可以实现对路径问题的无烦恼。像你这个问题, 如果路径是对的,试着在<packege>里面加一个参数namespace="/" 试一下。
      

  2.   

    用这个获取试试
    request.getRequestURI()
      

  3.   

    <%
    String path = request.getContextPath();
    %>
    加上这个path, 路径无忧
      

  4.   

    <%
    String path = request.getContextPath();
    %>
    加上path, 路径无忧
      

  5.   

    在页面中采用绝对路径,这样就可以了,不要采用相对路径,在jsp页面的开头部分添加:
    <%
    String path = request.getContextPath();
    // 获得本项目的地址(例如: http://localhost:8080/MyApp/)赋值给basePath变量
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    // 将 "项目路径basePath" 放入pageContext中,待以后用EL表达式读出。
    pageContext.setAttribute("basePath",basePath); 
    %>
    然后在head中添加 <base href="<%=basePath%>">
    添加完之后 你的图片访问地址就可以这么写了 <img src="/images/huitailang.gif"/>  images前面的“/”表示根目录 也就是webroot ,希望对你有所帮助。
      

  6.   

    jsp不是已经默认设有绝对路径了莫。
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
      

  7.   

    addmodel.jsp中
    <img src="../../images/huitailang.gif"/>这个图片src是前台路径,浏览器在发送一次请求,获取html源码后,再次发送图片请求,
    那请求的URL肯定要加上功能的上下文,
    如<img src="${ContextPath}/images/huitailang.gif"/>