スポンサードリンク


JSPのEL式とスクリプトレットを相互変換する方法!SAStrutsでpageスコープの変数を取得!

    JSP スクリプトレット EL式 変換

    SAStrutsでウェブページの画面をJSPで構築する際に、
    フォームやリクエスト、セッション等、各種スコープに格納した値を取得する処理が必要になりますよね。

    正直なところ自由度が大きすぎて、どのようなコーディングが現実的なのか迷うこともあると思います。

    特に困るのが、スクリプトレットとEL式の使い分けです。
    両方とも記述方式に違いが合ったり、仕様や用途が大きく違います。

     

    スクリプトレットの記述方法

    スクリプトレットはJSP上でJavaの構文プログラムを記述するための記法のことです。

    「<%」と「%>」で囲んだ範囲がJavaの世界に置き換わり、
    通常のJavaファイルと同じような記述が可能です。

     

    上記の記述によって、JSP内でJavaの構文を記述できます。

    値をJSP内で出力する場合は「<%= {変数名} %>」と書きますね。

     

    EL式の記述方法

    EL式とはExpression Languageの略となり、「式言語」とも呼ばれます。

    特徴はJSPをより簡単に書くために提供された機能でJSP2.0より導入されています。

    EL式の記述では「${変数名}」と書くケースもあれば「${構文}」と書くケースがあります。

     

    このように「${}」内に変数を記述したり、式を記述できます。
    なので「式言語」と言われます。

     

    EL式の変数情報が格納されるスコープはpage

    EL式として扱える変数は、サーブレットのpageスコープに格納されています。

    具体的にはJSPを構成している「PageContext」内にあります。

    尚、pageスコープに関してはプログラム開発者が記述や指定をしなくても自動的に呼び出しができます。
    なので、JSP上でpageContextと変数を記述しても普通に使えます。
    まあ暗黙的なオブジェクトとなっています。

    さて、ここで何がやりたいかと言いますと、
    スクリプトレットとして記述した変数をEL式の変数として使う場合、
    その逆のEL式として登録された変数をスクリプトレットの記述に使いたい場合です。

     

    スポンサードリンク

     

    スクリプトレットとEL式の変数を相互に変換する方法

    スクリプトレットとEL式の変数を相互に変換して利用したい場合の方法を記載しておきます。
    本当はもっと良いやり方があるのかもしれないけど・・・。

     

    スクリプトレットからEL式に変換

     

    スクリプトレットの記述内に変数を宣言して、タグリブで変数を格納し、
    最終的にEL式で呼び出せます。

     

    EL式からスクリプトレットに変換

     

    EL式で呼び出せるものはサーブレットの「page」スコープに存在しているので、
    無理やりスクリプトレット上で呼び出して、適当な変数に格納し、最終的に出力すればOKです。

     

    そもそもスクリプトレットとEL式を混在させた処理は望ましくないですし、
    用途に応じて使い分けるものなので、よっぽどのことがない限りはこのような変換はしないほうがよいのでしょう・・・。

      The following two tabs change content below.
      よっき プロフィール画像
      パソコンが大好きな青年。職業はプログラマ/SE。 フリーランスとしてウェブサイトの構築・保守の業務に従事。専門学校とパソコンスクールで講師も担当。幼少期からパソコンが大好きで、趣味がそのまま仕事に転じた。自作PCの魅力に惹かれたのは学生時代の頃。自作PC専門ブログで、お得な情報を紹介しています。

      スポンサードリンク


      コメントを残す




      CAPTCHA


      このページの先頭へ