getGlobalError()はObjectErrorを返すので、グローバルエラーはObjectErrors の別の名前だと推測しています。
実際
「グローバルエラーは、」FieldError
のインスタンスではありません任意のObjectError
は私だけFieldErrorsをログインした場合、私は何をしないことになるsource
getGlobalErrors()
の
を見ているのですか?
任意ObjectError
このコードは、「グローバルエラー」として登録されています。 BindingResult.reject(errorCode, errorArgs, defaultMessage)
に電話してください。
rejectValue(field, errorCode, errorArgs, defaultMessage)
については、javadocも参照してください。通常、エラーは、オブジェクト自体ではなく、検証/バインドされたオブジェクトのフィールド(例えば、その属性がSpringフォームタグのmodelAttribute
タグと一致するモデル値)に対して登録されます。続き
がグローバルエラーを作成する方法のカップルです:
は、ルートフォームオブジェクトではなくSpring Validator
implementation経由で検証されていますネストされたオブジェクトだと仮定すると、あなたは、「グローバルエラーを」追加することができます(中指定されたバインドされたルートオブジェクトのコンテキスト)を、フィールド名パラメータrejectValue
としてnullを渡して返します。ただし、検証対象のオブジェクトがネストされたオブジェクトの場合は、FieldError
がネストされたオブジェクトフィールドに対して登録されます。オブジェクトErrors
オブジェクトのnestedPath
( "ネストされたオブジェクトグラフ")プロパティは、一般的なものがObjectError
か特定のものかFieldError
が追加されているかどうかが重要です。
JSR 303制約注釈をクラスレベルで適用します。 exampleを参照してください。ここでは、モデルオブジェクトがデータストア内に存在するかどうかがチェックされます。
<spring-ext:overflowErrors name="newModelObject">
<div class="row">
<div class="large-12 columns">
<div class="alert panel">
<c:if test="${overflowErrors.size()>0}">
<p>There are multiple errors with your entry.</p>
<c:forEach var="error" items="${overflowErrors}">
${fn:toUpperCase(fn:substring(error.field, 0, 1))}${fn:toLowerCase(
fn:substring(error.field, 1,fn:length(error.field)))}:
<b><spring:message message="${error}" /></b>
<br/>
</c:forEach>
</c:if>
<c:forEach var="error" items="${globalErrors}">
<b><spring:message message="${error}" /></b>
<br/>
</c:forEach>
</div>
</div>
</div>
</spring-ext:overflowErrors>
: 、ビューのグローバルフィールドエラーの両方を含むこのタグを表示する:ここ
は、フィールドレベルのエラー対グローバルを参照する例です