Struts2中There is no Action mapped for namespace錯誤解決方法


1.我的原有配置

jsp表單提交路徑

<form class="layui-form" id="form" action="${ctx }/membersLogin/membersLoginAction!membersLogin.action">
    ............
</form>

struts2攔截配置

    <package name="default" extends="struts-default" namespace="/membersLogin" strict-method-invocation="false">
        <action name="membersLoginAction" class="seventykg.web.MembersLoginAction">
            <result name="login_success">/index.jsp</result>
            <result name="login_fail">/login_fail.jsp</result>
        </action>
    </package>

2.按常理來說是沒問題的

但是每次提交表單的時候報錯如下:

There is no Action mapped for namespace。。。。。。。。。

3.百度搜了一下各種解決方法,都不是我想要的,無奈自己看了一下struts.xml配置文件,發現有一個地方叫:

 

    <!-- 是否開啟動態方法調用 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>

 

當這個value="false"的時候,是不支持(${ctx }/membersLogin/membersLoginAction!membersLogin.action)這樣帶有方法(membersLogin)的路徑的,僅僅支持(${ctx }/membersLogin/membersLoginAction)這樣的,方法的話需要寫到配置文件中

<package name="default" extends="struts-default" namespace="/membersLogin" strict-method-invocation="false">
        <action name="membersLoginAction" class="membersLoginAction" method="membersLogin">
            <result name="login_success">/index.jsp</result>
            <result name="login_fail">/login_fail.jsp</result>
        </action>
</package>

改成true即可解決問題

=====================================================================================

今天特來補充一下還是這個異常問題:

在同一個struts配置文件中,package標簽的name屬性不能全為default,若有多個,必須給name起名字,若不然還是會報這個異常:

There is no Action mapped for namespace [/membersLogin] and action name [membersLoginAction] associated with context path...

 

QQ交流群4060038


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM