クラス ErrorsTag

java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.iplass.mtp.web.template.tags.ErrorsTag
すべての実装されたインタフェース:
jakarta.servlet.jsp.tagext.BodyTag, jakarta.servlet.jsp.tagext.IterationTag, jakarta.servlet.jsp.tagext.JspTag, jakarta.servlet.jsp.tagext.Tag, jakarta.servlet.jsp.tagext.TryCatchFinally, Serializable

public class ErrorsTag extends jakarta.servlet.jsp.tagext.BodyTagSupport implements jakarta.servlet.jsp.tagext.TryCatchFinally

エラーが存在する場合、エラー内容をフォーマットしてhtml出力するJSPタグです。

ErrorsTagが記述される場所、設定される属性値により、出力される内容が異なります。

  • bindタグ配下、かつprop指定がある場合
    当該プロパティに紐付くエラーがある場合、エラーを出力します。
    利用例
     <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
     <%@taglib prefix="m" uri="http://iplass.org/tags/mtp"%>
    
     :
    
     <m:bind bean="${formBean}">
       <m:bind prop="userName">
       user name : <input type="text" value="${value}" name="${name}"> <m:errors />
       </m:bind>
     </m:bind>
     
  • bindタグ配下、かつprop指定がない場合
    当該Beanに紐付くエラーがある場合、そのすべてのエラーを出力します。
    利用例
     <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
     <%@taglib prefix="m" uri="http://iplass.org/tags/mtp"%>
    
     :
    
     <m:bind bean="${formBean}">
       <m:errors />
    
       :
    
     </m:bind>
     
  • bindタグ配下ではない場合
    requestからWebRequestConstants.EXCEPTIONをキーに例外を取得しメッセージ出力します。 当該ExceptionがMappingExceptionの場合、その例外に保持されるMappingResultのメッセージを出力します。
    当該ExceptionがApplicationExceptionの場合、その例外のメッセージを出力します。
    当該Exceptionがそれ以外の場合、固定のシステム例外メッセージを出力します。
  • タグ属性にて明示的にerrorsを指定した場合
    指定されたインスタンスにより適切にメッセージ出力します。 出力内容については属性の説明:errorsを参照してください。

指定可能な属性の説明

属性名Script可デフォルト値説明
errors  出力するエラー対象を指定します。指定されたエラー対象により適切にエラーメッセージ出力します。
  • Stringの場合
    指定されたStringを出力します。
  • MappingErrorの場合
    指定されたMappingErrorのerrorMessagesを出力します。
  • MappingResultの場合
    指定されたMappingResultが保持するMappingErrorのerrorMessagesを出力します。
  • MappingExceptionの場合
    指定されたMappingExceptionのMappingResultの内容を出力します。
  • ApplicationExceptionの場合
    指定されたApplicationExceptionのmessageを出力します。
  • Throwableの場合
    固定のシステム例外メッセージを出力します。
  • List<String>、配列の場合
    指定されたリスト、配列の内容を1件ずつ出力します。
  • それ以外の場合
    指定されたインスタンスのtoString()を出力します。
errorsが指定されない場合、 errorsTagの記述場所から自動的にerrorsのインスタンスを解決しようとします。 プロパティがバインドされている場合、プロパティに紐付くエラーを探します。 Beanがバインドされている場合、Beanに紐付くすべてのエラーを探します。 Bean、プロパティともバインドされていない場合、requestからWebRequestConstants.EXCEPTIONをキーに例外を探します。
delimiter <br>エラーメッセージが複数ある場合のデリミタを指定可能です。
header <span class=\"error\">エラーメッセージを出力する際、先頭に出力する内容を指定可能です。
footer </span>エラーメッセージを出力する際、最後に出力する内容を指定可能です。
htmlEscape trueエラーメッセージを出力する際にhtmlエスケープ処理をするか否かを指定可能です。
errorsVariableName errors エラーをpageContextに公開する際の変数名を指定可能です。また、この変数名はバインドされているエラーを探す場合にも利用されます。

メッセージ出力内容のカスタム

タグ内のBODYにJSPコードを記述することにより、エラーメッセージ出力内容をカスタマイズすることが可能です。
カスタマイズ例

 <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <%@taglib prefix="m" uri="http://iplass.org/tags/mtp"%>

 :

 <m:errors>
 <span>
 <b>エラーが発生しました</b><br>
 エラー内容:${errors}
 </span>
 </m:errors>

 
カスタマイズ出力する場合は、delimiter、header、footer、htmlEscapeの設定は利用されません。

関連項目:
  • フィールドの概要

    フィールド
    修飾子とタイプ
    フィールド
    説明
    static final String
     
    static final String
     
    static final String
     
    static final String
     

    クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport

    bodyContent

    クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport

    id, pageContext

    インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag

    EVAL_BODY_BUFFERED, EVAL_BODY_TAG

    インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag

    EVAL_BODY_AGAIN

    インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag

    EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
     
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    void
     
    int
     
    void
     
    int
     
     
     
     
     
     
    boolean
     
    void
    setDelimiter(String delimiter)
     
    void
    setErrors(Object errors)
     
    void
    setErrorsVariableName(String errorsVariableName)
     
    void
    setFooter(String footer)
     
    void
    setHeader(String header)
     
    void
    setHtmlEscape(boolean htmlEscape)
     

    クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport

    doAfterBody, doInitBody, getBodyContent, getPreviousOut, release, setBodyContent

    クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport

    findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag

    getParent, setPageContext, setParent
  • フィールド詳細

  • コンストラクタの詳細

    • ErrorsTag

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

    • getErrorsVariableName

      public String getErrorsVariableName()
    • setErrorsVariableName

      public void setErrorsVariableName(String errorsVariableName)
    • getDelimiter

      public String getDelimiter()
    • setDelimiter

      public void setDelimiter(String delimiter)
    • getHeader

      public String getHeader()
    • setHeader

      public void setHeader(String header)
    • getFooter

      public String getFooter()
    • setFooter

      public void setFooter(String footer)
    • getErrors

      public Object getErrors()
    • setErrors

      public void setErrors(Object errors)
    • isHtmlEscape

      public boolean isHtmlEscape()
    • setHtmlEscape

      public void setHtmlEscape(boolean htmlEscape)
    • doStartTag

      public int doStartTag() throws jakarta.servlet.jsp.JspException
      定義:
      doStartTag インタフェース内 jakarta.servlet.jsp.tagext.Tag
      オーバーライド:
      doStartTag クラス内 jakarta.servlet.jsp.tagext.BodyTagSupport
      例外:
      jakarta.servlet.jsp.JspException
    • doEndTag

      public int doEndTag() throws jakarta.servlet.jsp.JspException
      定義:
      doEndTag インタフェース内 jakarta.servlet.jsp.tagext.Tag
      オーバーライド:
      doEndTag クラス内 jakarta.servlet.jsp.tagext.BodyTagSupport
      例外:
      jakarta.servlet.jsp.JspException
    • doCatch

      public void doCatch(Throwable t) throws Throwable
      定義:
      doCatch インタフェース内 jakarta.servlet.jsp.tagext.TryCatchFinally
      例外:
      Throwable
    • doFinally

      public void doFinally()
      定義:
      doFinally インタフェース内 jakarta.servlet.jsp.tagext.TryCatchFinally