クラス ErrorsTag

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

public class ErrorsTag
extends javax.servlet.jsp.tagext.BodyTagSupport
implements javax.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 java.lang.String DEFAULT_DELIMITER  
    static java.lang.String DEFAULT_ERROR_VARIABLE_NAME  
    static java.lang.String DEFAULT_FOOTER  
    static java.lang.String DEFAULT_HEADER  

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

    bodyContent

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

    id, pageContext

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

    EVAL_BODY_BUFFERED, EVAL_BODY_TAG

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

    EVAL_BODY_AGAIN

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

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

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

    修飾子とタイプ メソッド 説明
    void doCatch​(java.lang.Throwable t)  
    int doEndTag()  
    void doFinally()  
    int doStartTag()  
    java.lang.String getDelimiter()  
    java.lang.Object getErrors()  
    java.lang.String getErrorsVariableName()  
    java.lang.String getFooter()  
    java.lang.String getHeader()  
    boolean isHtmlEscape()  
    void setDelimiter​(java.lang.String delimiter)  
    void setErrors​(java.lang.Object errors)  
    void setErrorsVariableName​(java.lang.String errorsVariableName)  
    void setFooter​(java.lang.String footer)  
    void setHeader​(java.lang.String header)  
    void setHtmlEscape​(boolean htmlEscape)  

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

    doAfterBody, doInitBody, getBodyContent, getPreviousOut, release, setBodyContent

    クラスから継承されたメソッド javax.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

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

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

  • コンストラクタの詳細

  • メソッドの詳細

    • getErrorsVariableName

      public java.lang.String getErrorsVariableName()
    • setErrorsVariableName

      public void setErrorsVariableName​(java.lang.String errorsVariableName)
    • getDelimiter

      public java.lang.String getDelimiter()
    • setDelimiter

      public void setDelimiter​(java.lang.String delimiter)
    • getHeader

      public java.lang.String getHeader()
    • setHeader

      public void setHeader​(java.lang.String header)
    • getFooter

      public java.lang.String getFooter()
    • setFooter

      public void setFooter​(java.lang.String footer)
    • getErrors

      public java.lang.Object getErrors()
    • setErrors

      public void setErrors​(java.lang.Object errors)
    • isHtmlEscape

      public boolean isHtmlEscape()
    • setHtmlEscape

      public void setHtmlEscape​(boolean htmlEscape)
    • doStartTag

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

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

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

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