クラス BindTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
org.iplass.mtp.web.template.tags.BindTag
- すべての実装されたインタフェース:
jakarta.servlet.jsp.tagext.IterationTag,jakarta.servlet.jsp.tagext.JspTag,jakarta.servlet.jsp.tagext.Tag,jakarta.servlet.jsp.tagext.TryCatchFinally,Serializable
public class BindTag
extends jakarta.servlet.jsp.tagext.TagSupport
implements jakarta.servlet.jsp.tagext.TryCatchFinally
Beanに格納されている値、関連するエラーをpageContextにバインドするJSPタグです。
JSPでの利用例を以下に示します。
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="m" uri="http://iplass.org/tags/mtp"%>
:
<form>
<!-- formBeanという名前で参照(RequestやSessionから)されるBeanをバインドします -->
<m:bind bean="${formBean}">
<!-- formBeanのプロパティuserNameをバインドします。
${value}、${name}でformに指定すべきvalue, nameが取得できます。
また、<m:errors/>を指定することにより、BeanParamMapperでのマッピングエラー、バリデーションエラーを表示可能です。 -->
<m:bind prop="userName">
user name : <input type="text" value="${value}" name="${name}"> <m:errors />
</m:bind>
:
<m:bind prop="mailAddress">
mail address : <input type="text" value="${value}" name="${name}"> <m:errors />
</m:bind>
:
</m:bind>
</form>
指定可能な属性の説明
| 属性名 | Script可 | デフォルト値 | 説明 |
|---|---|---|---|
| bean | ○ |
バインドするBeanのインスタンスを指定します。 バインドされたBeanは、beanという変数名でpageContextに公開されます。 公開する際の変数名を変更したい場合は、beanVariableNameにて変数名を変更可能です。 |
|
| beanVariableName | bean | バインドされたBeanをpageContextに公開する際の変数名を指定可能です。 | |
| mappingResult | ○ |
BeanParamMapperでのバインド結果であるMappingResultのインスタンスを指定可能です。
mappingResultが指定された場合、当該Bean、プロパティに紐付くエラーがバインドされます。当該属性が未指定の場合、かつautoDetectErrorsがtrueの場合、mappingResultは自動解決されます。 バインドされた MappingResultはmappingResultという変数名でpageContextに公開されます。
公開する際の変数名を変更したい場合は、mappingResultVariableNameにて変数名を変更可能です。
|
|
| autoDetectErrors | true | エラー(mappingResult)を自動解決するか否かを指定可能です。
trueが指定された場合、requestからWebRequestConstants.EXCEPTIONをキーにMappingExceptionを取得し、
存在した場合、その例外からMappingResultのインスタンスを自動的に解決します。
|
|
| mappingResultVariableName | mappingResult | バインドされたMappingResultをpageContextに公開する際の変数名を指定可能です。 |
|
| prop | ○ | バインドされているBeanのプロパティのパスを指定します。
EL式の記法によって、ネストされたプロパティを指定可能です。 例) userName accout.mail details[0].id当該パスが指定されたbindタグの内側ではpageContextにプロパティ名、値、当該プロパティに関連するエラーがバインドされます。 pageContextに公開される際の変数名は、デフォルトでは以下の名前で公開されます。
また、propには、scriptでの指定が可能なので、Bean内にネストされたリストをバインドしたい場合、例えば次のような記述が可能です。 JSTLのforEachを利用する例
<m:bind bean="${bean}">
:
<c:forEach var="item" items="${bean.children}" varStatus="stat">
${stat.index}.
<m:bind prop="children[${stat.index}].name">
child name : <input type="text" value="${value}" name="${name}"> <m:errors />
</m:bind>
</c:forEach>
</m:bind>
prop指定と同時にbeanが指定された場合は、そのbeanのプロパティをバインドします。
beanが未指定の場合は、親タグに指定されるbeanのプロパティをバインドします。
|
|
| htmlEscape | true | value(プロパティ値の文字列表現)を出力する際にhtmlエスケープ処理をするか否かを指定可能です。 このフラグによってエスケープ処理されるのはvalueのみです。name、errorsの値はエスケープされません。 |
|
| formatter | ○ |
無効な参照です
|
value(プロパティ値の文字列表現)を出力する際のフォーマット処理を行うValueFormatterのインスタンスを指定します。このformatterをbeanが指定される親のbindタグに指定することにより個別のプロパティがバインドされる値に一律の処理が可能ですが、 次のように個別にrawValueからフォーマットすることも可能です。 以下例では、エラーが発生した場合は、エラー値を出力するようにnvl関数を利用しています。
<m:bind prop="dateProp">
:
<input type="text" value="${m:nvl(errorValue, m:fmt(rawValue, 'yyyy/MM/dd'))}" name="${name}">
</m:bind>
|
| propertyNameVariableName | name | バインドされたプロパティのHTTPパラメータ名をpageContextに公開する際の変数名を指定可能です。 | |
| propertyValueVariableName | value | バインドされたプロパティの値の文字列表現をpageContextに公開する際の変数名を指定可能です。 | |
| propertyRawValueVariableName | rawValue | バインドされたプロパティの生の値をpageContextに公開する際の変数名を指定可能です。 | |
| propertyErrorValueVariableName | errorValue | バインドされたプロパティがエラーの場合、そのエラー値が格納される変数名を指定可能です。 | |
| errorsVariableName | errors | バインドされたプロパティに関連するエラーをpageContextに公開する際の変数名を指定可能です。 | |
| prefix | name(HTTPパラメータ名)を出力する際のprefixを指定します。
HTTPリクエストをBeanParamMapperでマッピングする場合、BeanParamMapperのparamPrefixの値と一致させる必要があります。 |
||
| propertyDelimiter | . | name(HTTPパラメータ名)を出力する際のネストされたプロパティのデリミタを指定します。
HTTPリクエストをBeanParamMapperでマッピングする場合、BeanParamMapperのpropertyDelimiterの値と一致させる必要があります。 |
|
| indexPrefix | [ | name(HTTPパラメータ名)を出力する際のインデックス指定のプレフィックス文字を指定します。
HTTPリクエストをBeanParamMapperでマッピングする場合、BeanParamMapperのindexPrefixの値と一致させる必要があります。 |
|
| indexPostfix | ] | name(HTTPパラメータ名)を出力する際のインデックス指定のポストフィックス文字を指定します。
HTTPリクエストをBeanParamMapperでマッピングする場合、BeanParamMapperのindexPostfixの値と一致させる必要があります。 |
- 関連項目:
-
フィールドの概要
フィールド修飾子とタイプフィールド説明static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringクラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport
id, pageContextインタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAINインタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE -
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明voidintdoEndTag()voidintgetBean()(package private) BindTaggetProp()boolean(package private) booleanvoidsetAutoDetectErrors(Boolean autoDetectErrors) voidvoidsetBeanVariableName(String beanVariableName) voidsetErrorsVariableName(String errorsVariableName) voidsetFormatter(ValueFormatter formatter) voidsetHtmlEscape(boolean htmlEscape) voidsetIndexPostfix(String indexPostfix) voidsetIndexPrefix(String indexPrefix) voidsetMappingResult(MappingResult mappingResult) voidsetMappingResultVariableName(String mappingResultVariableName) voidvoidvoidsetPropertyDelimiter(String propertyDelimiter) voidsetPropertyErrorValueVariableName(String propertyErrorValueVariableName) voidsetPropertyNameVariableName(String propertyNameVariableName) voidsetPropertyRawValueVariableName(String propertyRawValueVariableName) voidsetPropertyValueVariableName(String propertyValueVariableName) クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport
doAfterBody, findAncestorWithClass, getId, getParent, getValue, getValues, release, removeValue, setId, setPageContext, setParent, setValue
-
フィールド詳細
-
DEFAULT_PROPERTY_DELIMITER
- 関連項目:
-
DEFAULT_INDEX_PREFIX
- 関連項目:
-
DEFAULT_INDEX_POSTFIX
- 関連項目:
-
DEFAULT_BEAN_VARIABLE_NAME
- 関連項目:
-
DEFAULT_MAPPING_RESULT_VARIABLE_NAME
- 関連項目:
-
DEFAULT_PROPERTY_NAME_VARIABLE_NAME
- 関連項目:
-
DEFAULT_PROPERTY_VALUE_VARIABLE_NAME
- 関連項目:
-
DEFAULT_PROPERTY_RAW_VALUE_VARIABLE_NAME
- 関連項目:
-
DEFAULT_PROPERTY_ERROR_VALUE_VARIABLE_NAME
- 関連項目:
-
DEFAULT_ERROR_VARIABLE_NAME
- 関連項目:
-
-
コンストラクタの詳細
-
BindTag
public BindTag()
-
-
メソッドの詳細
-
getPropertyErrorValueVariableName
-
setPropertyErrorValueVariableName
-
getFormatter
-
setFormatter
-
isHtmlEscape
public boolean isHtmlEscape() -
setHtmlEscape
public void setHtmlEscape(boolean htmlEscape) -
getPropertyDelimiter
-
setPropertyDelimiter
-
getIndexPrefix
-
setIndexPrefix
-
getIndexPostfix
-
setIndexPostfix
-
getBeanVariableName
-
setBeanVariableName
-
getMappingResultVariableName
-
setMappingResultVariableName
-
getPropertyNameVariableName
-
setPropertyNameVariableName
-
getPropertyValueVariableName
-
setPropertyValueVariableName
-
getPropertyRawValueVariableName
-
setPropertyRawValueVariableName
-
getErrorsVariableName
-
setErrorsVariableName
-
getBean
-
setBean
-
getAutoDetectErrors
-
setAutoDetectErrors
-
getMappingResult
-
setMappingResult
-
getProp
-
setProp
-
getPrefix
-
setPrefix
-
isSetBean
boolean isSetBean() -
getBeanBindTag
BindTag getBeanBindTag() -
doStartTag
public int doStartTag() throws jakarta.servlet.jsp.JspException- 定義:
doStartTagインタフェース内jakarta.servlet.jsp.tagext.Tag- オーバーライド:
doStartTagクラス内jakarta.servlet.jsp.tagext.TagSupport- 例外:
jakarta.servlet.jsp.JspException
-
doEndTag
public int doEndTag() throws jakarta.servlet.jsp.JspException- 定義:
doEndTagインタフェース内jakarta.servlet.jsp.tagext.Tag- オーバーライド:
doEndTagクラス内jakarta.servlet.jsp.tagext.TagSupport- 例外:
jakarta.servlet.jsp.JspException
-
doCatch
- 定義:
doCatchインタフェース内jakarta.servlet.jsp.tagext.TryCatchFinally- 例外:
Throwable
-
doFinally
public void doFinally()- 定義:
doFinallyインタフェース内jakarta.servlet.jsp.tagext.TryCatchFinally
-