JSTL cタグ

JSTL cタグといきなり言われても分からないと思いますが、JSP内のスクリプトレットをなくすために
開発されたJCP( Java Community Process )という団体が定めた国際規格で、JCPの52番で仕様書が
配布されています。

JSTLの使い方については、検索サイトで JSTLで検索をすると、色々な情報が入手できるので、
本サイトでは、JSTL については特に説明はしません。

c:outタグ

本サイトで紹介をするのは、c:outタグです。
必要最低限の超簡単な説明だけします。

  • <c:out value="${変数A}"/>
    HttpServletRequestに setAttribute() した変数A の値を書き出します
  • <c:out value="${変数A.xxx}"/>
    HttpServletRequestに setAttribute() した変数Aの xxx のgetterメソッド( getXxx() )の値を書き出します

(補足)変数Aが、HttpServletRequestメモリ空間で発見できなければ、HttpSessionメモリ空間を探索します。

Loginエラーメッセージを追加する

使用例として、ログインエラー時に、エラーメッセージを追加してみましょう。
仕込みは、LoginCtrl.javaのonSubmit()で、ログイン失敗したときに、msg というString変数を
HttpServletRequestにセットしておきます。

まずは、LoginCtrl.java の onSubmit()の変更箇所です
ログイン失敗字に、"msg" という文字列をsetAttribute()しています。 なお、LoginCtrl.javaの先頭で import com.jxpath.commons.msg.XMsgUtil; を追加してください。

次に表示側のlogin.jspの追記箇所です。
bodyタグの直下で、いきなり、c:outを1行追加しました。
c:outタグは、"msg"変数が見つからなかったら、空文字を出力するので、
nullチェックはしなくて良いというのが便利です。

動作確認

SpringWeb2を mvn package して、tomcatを再起動してください。
わざと、login に失敗して、login.jsp に戻ってみると、エラーメッセージが表示されていますね。