検証用に次のコードがあります
@RequestMapping(value = "/itemValidation.json", method = RequestMethod.POST)
@ResponseBody
public ValidationResponse ajaxValidation(
@ModelAttribute(value = formName) @Valid Item item,
BindingResult result) {
ValidationResponse res = new ValidationResponse();
if (!result.hasErrors()) {
res.setStatus("SUCCESS");
} else {
res.setStatus("FAIL");
List<FieldError> allErrors = result.getFieldErrors();
List<ErrorMessage> errorMesages = new ArrayList<ErrorMessage>();
for (FieldError objectError : allErrors) {
errorMesages.add(new ErrorMessage(objectError.getField(),
objectError.getDefaultMessage()));
}
res.setErrorMessageList(errorMesages);
}
return res;
}
検証時に、以下に示すように、制約を満たさない 3 つの要素があります。
問題は JSP にあり、最後の 2 つのエラーのみが表示されます。fieldName : のエラーitemPK.name
は表示されません。
以下のコードを使用してエラーを表示します。
<span class="help-inline"><form:errors path="${name}" /></span>
生成された入力要素を順番に:
<input id="itemPK.name_id" name="itemPK.name" type="text" value="">
<input id="price_id" name="price" type="number" value="">
<input id="point_id" name="point" type="number" value="">
何がうまくいかなかったのかわからないので、誰かがこれに光を当ててくれることを願っています.