您的位置:首页 > 其它

彻底解决警告: No configuration found for the specified action

2010-07-08 18:51 531 查看
最近学习struts2 中时候控制台老是出现该警告错误。

我的客户端代码如下 (代码1):

<s:form action="/admin/login" method="post">
<s:textfield name="username" id="usenrame" label="用户名" />
<s:password name="password" id="password" label="密码" />
<s:submit type="input" value="登录" id="btnsubmit" cssClass="btnsubmit"></s:submit>
</s:form>


struts.xml中的配置代码如下 (代码2):

<package name="admin" namespace="/admin" extends="struts-default">
<action name="login" class="com.longweir.struts2.action.LoginAction">
<result name="success">/actionResult.jsp</result>
<result name="login" type="redirect">/admin/login.jsp</result>
<result name="input">/admin/login.jsp</result>
</action>
</package>


在网上搜索了下,搜索网络给出的答案几乎都说把<s:form action="/admin/login method="post" >中的login后加上.action后缀了,做了测试,问题仍然没有解决。

通过我观察发现有两个地方需要修改,首先<s: form>表单中需要加入命名空间参数namespace,和struts.xml中配置一致。其次,<s:form action=xxx> 中直接写action映射的名字,比如我的xml中是login,则这里直接写login即可,不需要画蛇添足加上.action后缀或者其他的前置路路径,所以修改后的客户端文件配置为 代码(3):

<s:form action="login" method="post" namespace="/admin">
<s:textfield name="username" id="usenrame" label="用户名" />
<s:password name="password" id="password" label="密码" />
<s:submit type="input" value="登录" id="btnsubmit" cssClass="btnsubmit"></s:submit>
</s:form>


当然,如果你不是使用的struts2的标签,而是使用的传统的html代码,则表单的action属性必须加上完整的路径和后缀也就是说,必须改成如下代码:

<form name="form" method="post" action="/admin/login.action">


你如上指定后,当浏览器给出如上的请求/admin/login.action ,struts2框架将首先在sturts.xml中查找 /admin 名称空间,如果找到了(比如我这里显然有这个名称空间),则执行login.action,如果没有找到,会到默认的名称空间中查找,如果默认的也没有,则提示错误,没有映射该action.

备注:

本文转载自:http://www.javaeye.com/topic/575148
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐