当你的表单用的是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的标签能自动识别,所以这样写就可以了..,
<s:textfield name="user.name" label="用户名"/>
<s:password name="user.password" label="密码"/>
<s:submit value="登录"/>
</s:form>
把action里面的.action去掉就可以了,struts的标签能自动识别,所以这样写就可以了..,
那你的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>
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/ 这一级找?
搂住可以检查下自己传过去的namespace 是不是“/”
所以搂住可以把namespace="/",去掉试试,这样它的namespace就为默认的了.
<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内容改下,之后就能过了,我运行过,能过,不就是类型转换嘛~~呵呵,以后注意细节