问题:
警告: No configuration found for the specified action: '/dd/login.action' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
struts.xml配置信息(部分):
<package name="packageName" extends="struts-default" namespace="/dd">
<action name="login" class="com.jato.srvclink.test.login.LoginAction" method="login">
jsp页面配置信息(部分):
<s:form action="/dd/login.action">
原因(从两个方面寻找原因):
首先看struts.xml配置信息对不对:
<package name="packageName" extends="struts-default" namespace="/dd">命名空间命名"/dd"格式正确;
<action name="login" class="com.jato.srvclink.test.login.LoginAction" method="login"> 的name属性值正确,注意不要写成"login.action"或者"/login.action"等,否则会把它当成一个完整的名字,即"login.action"或者"/login.action"。那么这样的话,在jsp页面上就该是这样引用<s:form action="login.action" namespace=“/dd”>或<s:form action="/login.action" namespace=“/dd">
第二个方面看jsp页面s:form标签的使用对不对:
<s:form action="/dd/login.action">这样是不对的,因为这样的提交的就是http://localhost:8080/javaweb//dd/login.action.出现了”//“。所以正确的用法应该是:
(1)<s:form action="dd/login.action">
(2)或者<s:form action="login" namespace=”/dd“>,注意此处action属性值是”login“不是”login.action“.表示在/dd命名空间下找寻"login"的action,不是找寻"login.action"的action。这是由于struts2为会自动增加.action后缀的缘故。补充:在使用默认命名空间” “的情况,也是不要加.action.否则当成名字,如:<package name="packageName" extends="struts-default"> <action name="login1" class="com.jato.srvclink.test.login.LoginAction" method="login"> </package>那么就该<s:form action="login">
总之两点:struts页面不要轻易使用.action、jsp页面不写.action