- ベストアンサー
strutsのコントローラクラスで表示させるjspを変えるには
ある時間帯だけ利用できるサイトを作ろうとしています。 時間外の場合には、「現在は利用時間外です。」みたいなページに飛ばそうと考えてます。 そこで、strutsのRequestProcessorクラスを拡張してクラスを作り、 その中で時間外だった場合は他のページへ飛ばしたいのですが、 他のページへ飛ばす書き方が分かりません。 どなたかご教授願えればと思います。 それでは、宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Actionの public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest req,HttpServletResponse res) の中で時間を判定して、 時間内の場合 return mapping.findForward("open"); 時間外の場合 return mapping.findForward("close"); じゃぁダメでしょうか?
その他の回答 (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; } ・・というような感じで。そういうことではない??
お礼
解決しました! ありがとうございました
お礼
RequestProcessorを拡張して、 ActionForwardメソッドの中で時間外の場合だけ return mapping.findForward("timeOver"); とし、struts-config.xmlの中の <global-forwards>で、 <forward name="timeOver" path="/jsp/time_over.jsp"/> とかいたら、うまくいきました! ありがとうございました