比如这个页面
http://localhost:8080/questionvsanswer/question/2里面的连接 <a href="<s:url action='register'/>">注册</a>这个连接产生的是 源码是:<a href="/questionvsanswer/question/register">注册</a>
如何生成/questionvsanswer/register只对工程的相对链接,而不是对/questionvsanswer/question的相对链接

解决方案 »

  1.   

    <s:a href="/register"></s:a>这样生成最后的href="[contextPath]/register"
    contextPath = questionvsanswer
      

  2.   

    Struts2中的相对路径都是相对于你调用的action的上下文的,即使你其实在一个JSP页面中访问一个链接。
    所以一般用绝对路径比较好
    如果一定用相对路径,那就这样写: <a href="<s:url action='../register'/>">
      

  3.   

    如果用绝对路径的话,添加上下面代码就很方便了,只要写项目名称后面的路径即可。
       
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <head><base href="<%=basePath%>" /></head>