• ベストアンサー

strutsのコントローラクラスで表示させるjspを変えるには

ある時間帯だけ利用できるサイトを作ろうとしています。 時間外の場合には、「現在は利用時間外です。」みたいなページに飛ばそうと考えてます。 そこで、strutsのRequestProcessorクラスを拡張してクラスを作り、 その中で時間外だった場合は他のページへ飛ばしたいのですが、 他のページへ飛ばす書き方が分かりません。 どなたかご教授願えればと思います。 それでは、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Actionの public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest req,HttpServletResponse res) の中で時間を判定して、 時間内の場合 return mapping.findForward("open"); 時間外の場合 return mapping.findForward("close"); じゃぁダメでしょうか?

yamada411
質問者

お礼

RequestProcessorを拡張して、 ActionForwardメソッドの中で時間外の場合だけ return mapping.findForward("timeOver"); とし、struts-config.xmlの中の <global-forwards>で、 <forward name="timeOver" path="/jsp/time_over.jsp"/> とかいたら、うまくいきました! ありがとうございました

その他の回答 (1)

noname#49664
noname#49664
回答No.1

どういう形で実装されているのがわからないのではずしてるかも知れませんが・・。異動先のページはただのHTMLとかJSPなのでしょうか。でしたら、RequestProcessor継承クラス内のprocessPreprocessメソッドをオーバーライドして、getRequestDispatcherしてforwardすればできるように思えますが。 protected boolean processPreprocess ( HttpServletRequest request, HttpServletResponse response) { ・・通常の処理の場合、 return true;で処理継続・・ try{ request.getRequestDispatcher("/××.jsp").forward(request,response); }catch(Exception ex){} return false; } ・・というような感じで。そういうことではない??

yamada411
質問者

お礼

解決しました! ありがとうございました

関連するQ&A