警告: No configuration found for the specified action: 'login' in namespace: '/jsp'. Form action defaulting to 'action' attribute's literal value.
因为这个错误我在 struts.xml 和 jsp页面之间修改了4个小时,不过最后我搞定他了。
虽然我还不明白原理是为什么,但并不妨碍我把这个可恶问题的解决过程同大家分享。
1.先把struts.xml 写成最简单的格式。
<package name="default" extends="struts-default">
<action name="login" class="com.action.LoginAction">
<result name="success"> /jsp/welcome.jsp </result>
</action>
</package>
-------------------
2.其次把 login.jsp 也改成最简单的格式。
<body>
<s:form action="login" method="post">
<s:textfield name="userName" label= "用户名"> </s:textfield>
<s:textfield name="password" label= "密码"> </s:textfield>
<s:submit/>
</s:form>
</body>
现在我们可以重启服务了,应该不会再出现问题了。
可是!我如果必须加上 namespace 那又该如何做呢?
--------------------
3.在struts.xml 中加入 namespace="/xxx" 为什么要加3个X 呢 ?那是真的恨呀......
那么要正确的运行你必须在 login.jsp 里写
<s:form action="login" method="post" namespace="/xxx">
重启-运行;应该不会再有问题的。
但是如果你写成 <s:form action="/xxx/login.action" method="post">
依然会出错的,这点我就不明白了哈。
-------------------
4.最后我们再来看一下 这段错误
警告: No configuration found for the specified action: 'login' in namespace: '/jsp'. Form action defaulting to 'action' attribute's literal value.
当我把 login.jsp 中的 action 值的变化为啥时 'login' 也就变化成啥
当我改变 login.jsp 的目录时, '/jsp' 就会改变 比如 WebRoot/jsp/xjsp/login.jsp
那么就是 '/xjsp/jsp'.Form action defaulting .......
----------------
我还不知道如何能能代码像其它人样子贴出来 就像是在编辑器中的效果一样咯。(有谁知道的留言帮我一下哦)
所以看起来很不方便,希望能给痛苦中的人们一些用处哦哦