public class BindTag
extends TagSupport
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 | ○ | DefaultValueFormatter のインスタンス |
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 java.lang.String |
DEFAULT_BEAN_VARIABLE_NAME |
static java.lang.String |
DEFAULT_ERROR_VARIABLE_NAME |
static java.lang.String |
DEFAULT_INDEX_POSTFIX |
static java.lang.String |
DEFAULT_INDEX_PREFIX |
static java.lang.String |
DEFAULT_MAPPING_RESULT_VARIABLE_NAME |
static java.lang.String |
DEFAULT_PROPERTY_DELIMITER |
static java.lang.String |
DEFAULT_PROPERTY_ERROR_VALUE_VARIABLE_NAME |
static java.lang.String |
DEFAULT_PROPERTY_NAME_VARIABLE_NAME |
static java.lang.String |
DEFAULT_PROPERTY_RAW_VALUE_VARIABLE_NAME |
static java.lang.String |
DEFAULT_PROPERTY_VALUE_VARIABLE_NAME |
コンストラクタと説明 |
---|
BindTag() |
修飾子とタイプ | メソッドと説明 |
---|---|
void |
doCatch(java.lang.Throwable t) |
int |
doEndTag() |
void |
doFinally() |
int |
doStartTag() |
java.lang.Boolean |
getAutoDetectErrors() |
java.lang.Object |
getBean() |
(package private) BindTag |
getBeanBindTag() |
java.lang.String |
getBeanVariableName() |
java.lang.String |
getErrorsVariableName() |
ValueFormatter |
getFormatter() |
java.lang.String |
getIndexPostfix() |
java.lang.String |
getIndexPrefix() |
MappingResult |
getMappingResult() |
java.lang.String |
getMappingResultVariableName() |
java.lang.String |
getPrefix() |
java.lang.String |
getProp() |
java.lang.String |
getPropertyDelimiter() |
java.lang.String |
getPropertyErrorValueVariableName() |
java.lang.String |
getPropertyNameVariableName() |
java.lang.String |
getPropertyRawValueVariableName() |
java.lang.String |
getPropertyValueVariableName() |
boolean |
isHtmlEscape() |
(package private) boolean |
isSetBean() |
void |
setAutoDetectErrors(java.lang.Boolean autoDetectErrors) |
void |
setBean(java.lang.Object bean) |
void |
setBeanVariableName(java.lang.String beanVariableName) |
void |
setErrorsVariableName(java.lang.String errorsVariableName) |
void |
setFormatter(ValueFormatter formatter) |
void |
setHtmlEscape(boolean htmlEscape) |
void |
setIndexPostfix(java.lang.String indexPostfix) |
void |
setIndexPrefix(java.lang.String indexPrefix) |
void |
setMappingResult(MappingResult mappingResult) |
void |
setMappingResultVariableName(java.lang.String mappingResultVariableName) |
void |
setPrefix(java.lang.String prefix) |
void |
setProp(java.lang.String prop) |
void |
setPropertyDelimiter(java.lang.String propertyDelimiter) |
void |
setPropertyErrorValueVariableName(java.lang.String propertyErrorValueVariableName) |
void |
setPropertyNameVariableName(java.lang.String propertyNameVariableName) |
void |
setPropertyRawValueVariableName(java.lang.String propertyRawValueVariableName) |
void |
setPropertyValueVariableName(java.lang.String propertyValueVariableName) |
public static final java.lang.String DEFAULT_PROPERTY_DELIMITER
public static final java.lang.String DEFAULT_INDEX_PREFIX
public static final java.lang.String DEFAULT_INDEX_POSTFIX
public static final java.lang.String DEFAULT_BEAN_VARIABLE_NAME
public static final java.lang.String DEFAULT_MAPPING_RESULT_VARIABLE_NAME
public static final java.lang.String DEFAULT_PROPERTY_NAME_VARIABLE_NAME
public static final java.lang.String DEFAULT_PROPERTY_VALUE_VARIABLE_NAME
public static final java.lang.String DEFAULT_PROPERTY_RAW_VALUE_VARIABLE_NAME
public static final java.lang.String DEFAULT_PROPERTY_ERROR_VALUE_VARIABLE_NAME
public static final java.lang.String DEFAULT_ERROR_VARIABLE_NAME
public java.lang.String getPropertyErrorValueVariableName()
public void setPropertyErrorValueVariableName(java.lang.String propertyErrorValueVariableName)
public ValueFormatter getFormatter()
public void setFormatter(ValueFormatter formatter)
public boolean isHtmlEscape()
public void setHtmlEscape(boolean htmlEscape)
public java.lang.String getPropertyDelimiter()
public void setPropertyDelimiter(java.lang.String propertyDelimiter)
public java.lang.String getIndexPrefix()
public void setIndexPrefix(java.lang.String indexPrefix)
public java.lang.String getIndexPostfix()
public void setIndexPostfix(java.lang.String indexPostfix)
public java.lang.String getBeanVariableName()
public void setBeanVariableName(java.lang.String beanVariableName)
public java.lang.String getMappingResultVariableName()
public void setMappingResultVariableName(java.lang.String mappingResultVariableName)
public java.lang.String getPropertyNameVariableName()
public void setPropertyNameVariableName(java.lang.String propertyNameVariableName)
public java.lang.String getPropertyValueVariableName()
public void setPropertyValueVariableName(java.lang.String propertyValueVariableName)
public java.lang.String getPropertyRawValueVariableName()
public void setPropertyRawValueVariableName(java.lang.String propertyRawValueVariableName)
public java.lang.String getErrorsVariableName()
public void setErrorsVariableName(java.lang.String errorsVariableName)
public java.lang.Object getBean()
public void setBean(java.lang.Object bean)
public java.lang.Boolean getAutoDetectErrors()
public void setAutoDetectErrors(java.lang.Boolean autoDetectErrors)
public MappingResult getMappingResult()
public void setMappingResult(MappingResult mappingResult)
public java.lang.String getProp()
public void setProp(java.lang.String prop)
public java.lang.String getPrefix()
public void setPrefix(java.lang.String prefix)
boolean isSetBean()
BindTag getBeanBindTag()
public int doStartTag() throws JspException
JspException
public int doEndTag() throws JspException
JspException
public void doCatch(java.lang.Throwable t) throws java.lang.Throwable
java.lang.Throwable
public void doFinally()