天天看点

No configuration found for the specified action警告异常的解决方案

异常信息如下:

2015-7-15 11:52:36 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn

警告: No configuration found for the specified action: 'Login' in namespace: '/admin'. Form action defaulting to 'action' attribute's literal value.

2015-7-15 11:52:36 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn

警告: No configuration found for the specified action: 'Login' in namespace: '/admin'. Form action defaulting to 'action' attribute's literal value.

出现这类异常的通常情况是struts.xml和你的jsp页面的namespace不对应。

我的struts.xml文档如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<package name="struts2" namespace="/" extends="struts-default">

<action name="Login" class="UserAction" method="login">

   <result name="admin" type="redirectAction">ListUsers</result>

   <result name="user">/global/success.jsp</result>

   <result name="failure">/global/failure.jsp</result>

   <result name="input">/index.jsp</result>

</action>

<action name="Register" class="UserAction" method="addUser">

   <result type="redirect">/users/register.jsp</result>

   <result name="addSuccess">/global/success.jsp</result>

   <result name="addFailure">/global/failure.jsp</result>

</action>

<action name="ListUsers" class="UserAction" method="queryAllUser">

   <result name="success">/admin/listUsers.jsp</result>

</action>

<action name="DeleteUser" class="UserAction" method="deleteUser">

<result name="success">/global/success.jsp</result>

<result name="input">/global/failure.jsp</result>

</action>

<action name="EditUser" class="UserAction" method="editUser">

   <result name="success">/global/success.jsp</result>

   <result name="input">/global/failure.jsp</result>

</action>

<action name="QueryById" class="UserAction" method="queryUserById">

   <result>/admin/editUser.jsp</result>

</action>

</package>

</struts>

发生异常的jsp代码片段:

  <s:form name="form1" action="Login" method="post" οnsubmit="return checkLogin()">

  <div><s:textfield id="userName" name="user.userName" label="用户名"/><s:label id="userMsg"/></div>

  <div><s:password id="password" name="user.password" label="密码"/> <s:label id="pwdMsg"/></div>

  <s:hidden name="role" value="admin"/>

  <s:submit value="登录"/>

  </s:form>

出现异常的原因:

jsp与struts.xml配置的默认命名空间不一样。

解决方法:

1.在struts中配置<package name="struts2" namespace="/" extends="struts-default">。相应的在jsp页面中配置  <s:form name="form1" action="Login" method="post" οnsubmit="return checkLogin()" namespace="/">;

2.如果在struts.xml中指定命名空间的名字,如<package name="struts2" namespace="/hello" extends="struts-default">。那么在jsp页面中就应该配置<s:form name="form1" action="Login" method="post" οnsubmit="return checkLogin()" namespace="/hello">;

继续阅读