使用struts1.3  <body>
     <form name="form" action="/logina" method="post">
         <input type="text" name="username" value="yt"><br>
         <input type="password" name="password" value="pa"><br>
         <input type="submit" name="submit" value="提交">
         <input type="reset" name="reset" value="重置">
     </form>
  </body>正常是应该跳到 http://localhost:8080/程序名/logina 提交后。 地址却跳到了  http://localhost:8080/logina 如果把那个action="/logina" 改成action="logina"就正常。
怎么样可以使action="/logina"  顺利跳转到 http://localhost:8080/程序名/logina 
注: (jsp中的    <base href="<%=basePath%>">已经加了)

解决方案 »

  1.   

    action="<%=request.getContextPath()%>/logina"
      

  2.   

    我看到有些程序的action="/logina" 是写死的。 但是他们就可以顺利跳转,
    不需要这种action="<%=request.getContextPath()%>/logina"
    不知道为何。
      

  3.   

    request.getContextPath()应该是得到项目的名字,如果项目为根目录,则得到一个"",即空的字条串, 
    如果项目为abc, <%=request.getContextPath()% >/   将得到abc/,服务器端的路径则会自动加上,
    <a href="XXXX.jsp"> 应该就是指当前路径下的这个xxx.jsp页面,有时候也可以在head里设置html:base
    来解决路径的问题,不过用的最多的还是request.getContextPath。有些写死的,应该是你的那个basePath写好了,
    wan
      

  4.   

    好像只有两种方法吧
    <html:form action="/user">  <form action="user.do">struts配置中
    <action path="/user".......>
      

  5.   

    汗颜既然用了STRUTS框架 就应该明白其中的请求原理 /开头的或者.DO 结尾的 去找STRUTS-CONFIG.XML里面找对应ACTION 类
      

  6.   

    struts config xml 配置文件里配的才是跳转的页面 这个action只是和为了需找配置文件的对应配置
      

  7.   

    谢谢各位。搞明白了。
    好像只有这几种<html:form action="/user">   
    <form action="user.do">
    action="<%=request.getContextPath()%>/logina"
    如果不是这几种,那项目名子就是叫root .
    马上结贴