2

これら 2 つの URL を異なるアクションにルーティングしようとしています。Struts 1.2 を使用しています:
/abc-def/products
/abc-def

このアクションを最初に入れてみました:

<action path="/abc*/products" type="com.business.exampleAction">
    <forward name="success" path="/go"/>
</action>

そして、これは次のとおりです。

<action path="/abc*" type="com.business.differentExampleAction">
    <forward name="success" path="/goElsewhere"/>
</action>

ただし、常に 2 番目のアクション (この場合は differentExampleAction) に移動します。.* や (.*) など、* のさまざまな反復を試みましたが、実際に機能するものはまだ見つかりませんでした。

私が読んだところによると、struts-config で許可されている正規表現のような文字はワイルドカード記号 (* と **) だけのようですが、間違っていることを願っています。

4

1 に答える 1

1

残念ながら、Struts1.xのワイルドカードについては正しいです...。の後には何もありません*ドキュメントセクション4.10を参照してください。これはStruts1.xの多くの制限の1つです...確かに、これは動作する最初のJava MVCフレームワークの1つです(明らかに今はいくつかのねじれがあります)。これが、SpringMVC3.xに切り替えることにした理由です。これにより、RestのようなURIをさらに実行できます。たとえば、次のようになります。

/abc/product/{productId}/part/{partId}

Struts1.xでこれを簡単に実現する方法がわかりません。

于 2011-02-05T01:07:19.623 に答える