当你的表单用的是Struts2的HTML标签时,<s:form action="login.action" method="post">
      <s:textfield name="user.name" label="用户名"/>
              <s:password name="user.password" label="密码"/>
              <s:submit value="登录"/>
</s:form> 
把action里面的.action去掉就可以了,struts的标签能自动识别,所以这样写就可以了..,

解决方案 »

  1.   

    你定义了包命名空间<package name="com" namespace="/" extends="struts-default"> 
    那你的form里的action就要带上这个namespace 如果不带他就到默认的包去找当然找不到
    改成
    <s:form action="/login.action" method="post">
          <s:textfield name="user.name" label="用户名"/>
                  <s:password name="user.password" label="密码"/>
                  <s:submit value="登录"/>
    </s:form> 
      

  2.   

    对struts2的这个命名空间,还是搞不明白
    1.<package name="/" namespace="/" extends="struts-default"> 这样写对么?
      对的话,是不是在默认空间匹配,即http://localhost:8080/myproject/ 这一级找?
    2.<package name="com" namespace="/" extends="struts-default"> 这样写的话,
      是不是在com空间匹配,即http://localhost:8080/myproject/com/ 这一级找?
      

  3.   

    另外你还少拉你的运行uri是什么?
      

  4.   

    struts2 会自动帮你截取namespace,截取规则 /工程名/text/**.action, namespace为“/text”,
    搂住可以检查下自己传过去的namespace 是不是“/”
    所以搂住可以把namespace="/",去掉试试,这样它的namespace就为默认的了.
      

  5.   

    3楼与6楼的方法都试过了,可是还是不行,郁闷了,这难道是传说中的RPWT?
      

  6.   

    楼主,你的项目,我测试过了,改两个地方,以及改一下细节问题;index.jsp :<s:form action="login" method="post">
          <s:textfield name="user.name" label="用户名"/>
                  <s:password name="user.password" label="密码"/>
                  <s:submit value="登录"/>
    </s:form>struts2.xml 
      <struts>
         <package name="com"  extends="struts-default">
                    <action name="login" class="com.LoginAction">                    <result name="success">/success.jsp </result>
                        <result name="error">/error.jsp </result>
                    </action>
                </package>
            </struts> 
    然后我说下你细节的问题;
     <result name="success">/success.jsp </result>
    返回的界面是:success.jsp;
    可是你写的jsp的名字是succes.jsp;兄弟差一个字母呢~他能找到才怪;
    再有,你的succes.jsp和index.jsp ,怎么写成同样的代码;
    把succes.jsp内容改下,之后就能过了,我运行过,能过,不就是类型转换嘛~~呵呵,以后注意细节
      

  7.   

    去掉namespace="/" 这个属性配置,或者namespace="/xxx"  <s:form action="login.action" namespace="/xxx" method="post">