本帖最后由 sunny8675 于 2012-05-25 15:57:41 编辑

解决方案 »

  1.   

    非得用<s:form>吗?
    <form>也可以做的呀
      

  2.   

    恩,必须用struts2的标签。无助中...
      

  3.   

    正确的使用方法是 <s:form action="index" method="post" namespace="/user">或者<form action="/user/index" method="post">
      

  4.   

    我也用struts2,但从不用它的标签,原因是个人认为struts2标签有点水,
    还是自己写的标签好用啊 !!!
      

  5.   

    恩,正确,我以为以/开始是服务器的根路径。看来struts1和struts2区别很大啊。
    以/开始在struts2里面是不是绝对路径,而且是项目的根路径呢?
      

  6.   

    第一种<form action="index.action" >.....</form>第二种<form action="/user/index.action" >.....</form>第三种<s:form action="index" namespace="/user" >.....</s:form>第一种写法可以通过测试,原因是FilterDispatcher会去package的根目录及下面的子目录去搜index这个action第二种写法是正规写法,可以通过测试,因为FilterDispatcher把form的跳转分解为index.action和nanespace=/user,然后在package下直接命中namespace为"/user"的那个包。第三种写法,能通过测试,原因因为你已指定了namespace,而且struts2会默认的给你的action加上.action
      

  7.   

    恩,正确,我以为以/开始是服务器的根路径。看来struts1和struts2区别很大啊。
    以/开始在struts2里面是不是绝对路径,而且是项目的根路径呢?
      

  8.   

    应该是项目的根路径,如果放在Root下,则访问时,无需写项目名。
      

  9.   

    总结一下结贴吧:
    Struts2命名空间正确的使用方法是
    <s:form action="index" method="post" namespace="/user">
    或者
    <form action="/user/index" method="post">
    在Struts2中以/开始为项目的根路径。