1

次のコードを使用して URL を書き換えています。プロファイル リンクをクリックするたびに機能しますが、アドレスの末尾に追加のプロファイル/ビューが追加されます。

http://www.example.com/myProject/Profile/view.action

ビューを初めてクリックすると、次のように変わります

 http://www.example.com/myProject/Profile/Profile/view.action

その後、ビューをもう一度クリックすると、それが表示されます(クリックするたびに、アドレスに /Profile が追加されます)

  http://localhost:8080/myProject/Profile/Profile/Profile/view.action

リンク

  <a href="<s:url action="Profile/view"/>" >Profile</a>

struts.xml

   <package name="default" extends="struts-default">
    <result-types>
        <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
    </result-types>

      <action name="index">
        <result type="tiles">content</result>
    </action>

 </package>

  <package name="Profile" extends="default" namespace="/Profile">
  <action name = "*" method="{1}" class="com.myproject.Profile">
    <result name="View" type="tiles">Profile</result>
            <result name="Edit" type="tiles">Edit</result>
</action>
    </package>

問題は、ビューをクリックするたびにアドレスが削除されず、プロファイル/ビューが最後に追加されないことです。アドレスを www.example.com/myproject/profile/view から www.example.com/myproject/profile/profile/view に変更するだけです

4

1 に答える 1

1

パッケージ宣言なしで言うのは難しいですが、属性<s:url>を使用する代わりにアクションの一部としてタグで指定しているため、アクションで追加の名前空間を取得しているように見えます。namespace

現在のアクションがプロファイル名前空間の一部である場合、それは追加されません。そうでない場合は、そうなります。属性を使用するnamespaceと自動的に処理されるため、考える必要はありません。


完全に無関係な質問を反映するように編集されました。

結果タイプstruts-defaultの知識がないパッケージを拡張しています。結果タイプを含むデフォルトを拡張するtiles必要があります、または(またはそれが呼ばれるものは何でも、私は思い出しません)。tilestiles-default

于 2013-02-15T01:09:09.770 に答える