Strutsでのpublic URLへのリダイレクト。

 簡単そうにできそうで実は面倒だったリダイレクト……。
 なぜかというと、以前は以下の方法でできたんです。

	// TestAction.java 内、 Test#execute() 。
    return new ActionForward( "http://d.hatena.ne.jp/", true );

 ところが、 Struts1.2以降はこれができなくなったみたいなんです。
 たとえば上記の TestAction を以下のようなパスで実行していたとします。

http://localhost/webapp-test/Test.do

 この場合に、上記のコードは

http://localhost/webapp-test/http://d.hatena.ne.jp/

 というURLを生成してリダイレクトしてしまいます。
 そこで、StrutsではJSP側でリダイレクトします。

<logic:redirect href="http://d.hatena.ne.jp/" />

 このように、<logic:redirect>タグを使うと外にリダイレクトできます。
 ちなみに

<logic:redirect href="/Test/00000000.html" />

 とすると、

http://localhost/Test/00000000.html

 というURLを作ってリダイレクトしてくれるので、普通のHTMLページに飛びたいときや、今回のようにmod_rewriteでの使用を前提にしたURLにリダイレクトしたい場合に非常に便利です。