0

Struts2アクションのようにページを転送するためにurlrewriteFilter( )を使用しています。アクションはsitemeshにマッピングされ、正しく機能します。org.tuckey.web.filters.urlrewrite.UrlRewriteFilterwww.mysite.com/myname

しかし、今は同じURLを維持したいのですが、ユーザーがログインしているかどうかに基づいて、ページに別のデコレータを適用します。

AppFuse-stackStruts2を使用しています。

4

1 に答える 1

0

わかりました-誰も試してみないように見えるからです。

Sitemesh は着信 URL 文字列に基づいてデコレーターを選択するため、異なるデコレーターを使用するには、クライアントのログイン ステータスに応じて異なる URL が必要です。AFAIK Sitemesh は Url 文字列全体を使用するため、これにはパラメーターが含まれるため、 ?loggedIn="true" または ?loggedIn="false" を追加して、これにデコレーターをマップすることができます。ただし、これは POST リクエストには役立ちません。

もう 1 つの方法は、2 つの Struts パッケージを作成することです。1 つはログイン ユーザー用、もう 1 つは匿名ユーザー用です。これにより、アクションは異なるパスを持ち、Url のパス部分にマップされます。

これがあなたのシナリオでどれほど実用的かはわかりませんが、3番目のオプションは、共通のデコレーターを1つ持ち、jspのテストで制御できる個別のスタイルシートを介してレイアウトを制御することです。

HTHよろしく

于 2011-11-10T07:27:01.050 に答える