1

struts.xmlの慣例では、次のような特定のアクションクラスのアクションを呼び出すために従います:

struts.xml:

<package name="cdot.oss.cmsat.gma.struts" extends="struts-default" namespace="/">
    <action name="*ConfigureTspThreshold"
                class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction" method="{1}">
                <result name="display">pages/ConfigureTspThresholdInput.jsp</result>
    </action>
</package>

ワイルドカードを使用してメソッド名を取得し、それConfigureTspThresholdActionがクラス名です。

struts2-json-pluginデータをJSONに変換するために使用しています。ここで、いくつかのアクションで、Struts2 JSON プラグインを使用して JSON データを返したいと考えています。

したがって、次のようなアクションには extendsjson-defaultと result-typeを使用する必要があります。json

<action name="*ConfigureTspThreshold" class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction" method="{1}">               
    <result type="json">
        <param name="excludeProperties">
            tspNameIdMap
        </param>
    </result>
</action>

<action name="*ConfigureTspThreshold" class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction"
            method="{1}">
    <result type="json">
        <param name="excludeProperties">
        thresholdParameters
        </param>
    </result>
</action>

したがって、同じ result-type を持つ異なる exclude-properties json

これらの JSON の結果の型を従う規則に適合させる方法は?

最後の 2 つのアクションは結果の型が同じであるため競合しjsonますか?

4

2 に答える 2

1

私がすることは、あなたのアクションクラスにプロパティを作成することですmyexcludedProperties

そして、アクションメソッドで、これを設定しますmyexcludedProperties

次に、アクションマッピングを次のように変更します

<action name="*ConfigureTspThreshold" class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction"
            method="{1}">
            <result type="json">
                <param name="excludeProperties">
                    ${myexcludedProperties}
                </param>
            </result>
</action>

${myexcludedProperties}正しい構文だと思います。

プロパティをコーディングしたくない場合はmethod="{1}"、正しいパラメーターを設定できるように、リクエスト ( ) を区別する方法を理解する必要があります。

それが理にかなっていることを願っています。

于 2013-12-09T13:24:01.240 に答える
0

オプションの 1 つは、結果の構成で動的パラメーターを使用することです。結果が実行される前に、アクションの結果をいつでも変更できます。この答えを見てください。

結果で動的パラメーターを使用できます。動的結果の構成を参照してください。

アクションでは、パトラメーターのゲッターを書く必要があります

private String actionUrl;

public String getActionUrl() {
   return actionUrl;
}

結果を構成する

<action name="create" class="CreateAction">
   <result type="redirect">${actionUrl}</result>
</action>
于 2013-12-09T13:12:40.270 に答える