1

struts.xml ファイルに次のようなコードが含まれているため、struts2 を使用しています。

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

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />

<include file="strutsAuthentication.xml"/>

<package name="default" extends="struts-default">
    <interceptors>
        <interceptor-stack name="crudStack">
            <interceptor-ref name="checkbox" />
            <interceptor-ref name="params" />
            <interceptor-ref name="static-params" />
            <interceptor-ref name="defaultStack" />
        </interceptor-stack>
    </interceptors>
</package>

そして、必要なすべてのアクションを strutsAuthentication.xml 内に指定しました。そのコードは次のとおりです。

<struts>
<package name="authentication" extends="default" namespace="/authentication">
    <action name="saveCountry" class="saveCountryAction">
        <interceptor-ref name="defaultStack" />
        <result name="success">/savecountry.jsp</result>
        <result name="error">/error.jsp</result>
    </action>

</package>

アプリケーションを tomcat にデプロイすると、次のような警告が表示されます。

警告 (org.apache.struts2.components.Form:308) - 指定されたアクションの構成が見つかりません: 名前空間の 'saveCountry': ''。'action' 属性のリテラル値をデフォルトとするフォーム アクション。

これは、struts.xml に strutsAuthentication.xml を含めることができないことを意味します。誰でも解決策がありますか?? 事前にサンクス....

4

3 に答える 3

0

得た解決策....上記の問題について、jspページからアクションを呼び出す際に間違いがありました。そのため、アクション クラスの呼び出し時に名前空間名「authentication」を含める必要があります。最終的な解決策は、「authentication/saveCountry.action」です。

于 2009-04-18T06:02:13.967 に答える
0

追記として。JSP ページで「xyz.action」を使用しないでください。後で url-pattern を .action から .do または .html などに変更する必要がある場合、または変更することにした場合は、すべての JSP ページを変更する必要があります。リンクを作成するより良い方法は次のとおりです。

<a href="<s:url namespace="nsname" action="actionName" method="methodName"/>">Link Text</a>
于 2011-07-25T10:17:20.023 に答える