モジュール jp.ecuacion.splib.web

クラス ShowPageController

java.lang.Object
jp.ecuacion.splib.web.controller.SplibBaseController
jp.ecuacion.splib.web.controller.ShowPageController

@Controller @Scope("prototype") @RequestMapping({"/public/showPage","/public/adminShowPage","/account/showPage","/admin/showPage"}) public class ShowPageController extends SplibBaseController
処理をせず、htmlを表示するだけのcontrollerが必要な場合に使用する。 そのようなControllerが複数あると邪魔なのでそれらを集約する目的で使用。 ひとつのクラスの中に、本クラスの子クラスを複数内部クラスとして定義することで効率的に複数のページ移動を実現。

page=xxxとparameterで指定すれば、xxx.htmlを表示してくれるcontroller。セキュリティも考慮。

権限で画面表示の制御を行う場合には本Controllerは使用不可かも。 (/public/showPage/page?page=xxx をsecurityConfigに設定すればいけるかもしれないが未確認)

  • コンストラクタの詳細

    • ShowPageController

      public ShowPageController()
  • メソッドの詳細

    • page

      @RequestMapping(value="page", method={POST,GET}) public String page(org.springframework.ui.Model model, @RequestParam("page") String page) throws IOException
      表示したいpageをURLのparameterで指定することで表示するCnotroller。

      便利な反面、セキュリティガキになるところなので必要なチェック等は行う。 特に、未login状態からlogin後のpageが見えたりするのは問題なので、htmlタグに data-show-page-login-state="public" のように、この属性名で、かつloginStateが指定されたもの(複数ある場合はカンマ区切りで)にのみ閲覧が可能とする。

      基本はgetでの使用を想定。 Session Timeout状態で、ログインボタンや他のPOST系ボタンを押す場合、session timeoutで弾かれ 本ページにredirectされるが、そのredirectもPOSTで行われるため本処理にPOSTで入ってくることがある。 それを考慮しget/post両方を受け取る設定にしておく。

      例外:
      IOException