Class ErrorsTag

java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.iplass.mtp.web.template.tags.ErrorsTag
All Implemented Interfaces:
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の設定は利用されません。

See Also:
  • Field Details

  • Constructor Details

    • ErrorsTag

      public ErrorsTag()
  • Method Details

    • 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
      Specified by:
      doStartTag in interface jakarta.servlet.jsp.tagext.Tag
      Overrides:
      doStartTag in class jakarta.servlet.jsp.tagext.BodyTagSupport
      Throws:
      jakarta.servlet.jsp.JspException
    • doEndTag

      public int doEndTag() throws jakarta.servlet.jsp.JspException
      Specified by:
      doEndTag in interface jakarta.servlet.jsp.tagext.Tag
      Overrides:
      doEndTag in class jakarta.servlet.jsp.tagext.BodyTagSupport
      Throws:
      jakarta.servlet.jsp.JspException
    • doCatch

      public void doCatch(Throwable t) throws Throwable
      Specified by:
      doCatch in interface jakarta.servlet.jsp.tagext.TryCatchFinally
      Throws:
      Throwable
    • doFinally

      public void doFinally()
      Specified by:
      doFinally in interface jakarta.servlet.jsp.tagext.TryCatchFinally