0
스프링 폼에 대한 유효성 검사기 클래스를 실행하려고하지만 내 페이지에 내 오류가 표시되지 않습니다. 나는 Spring 검증에 관해서는 초보자 다. 그래서 의심 할 여지없이 약간의 오류가있다. 여기 내 양식이 있습니다. (덧붙여, 이클립스, 말하는 form:error
라인에 경고를 게시한다 "목록 원시 타입입니다. 제네릭 형식 목록에 대한 언급이 파라미터해야합니다.")봄 3.2 MVC - 유효성 검사 오류가 나타나지 않습니다.
<form:form commandName="bulletin" method="post" action="processBulletin">
<table>
<tr>
<td>Name:</td>
<td><form:errors path="name" /></td>
<td><form:input path="name" maxlength="30" /></td>
</tr>
<tr>
<td>Subject:</td>
<td><form:errors path="subject" /></td>
<td><form:input path="subject" maxlength="50" /></td>
</tr>
<tr>
<td valign="top">Message:</td>
<td><form:errors path="note" /></td>
<td><form:textarea path="note" cols="70" rows="20" /></td>
</tr>
<tr>
<td><input type="submit" /></td>
<td> </td>
</tr>
</table>
</form:form>
여기 내 컨트롤러 클래스입니다. 여기에서 유효성 검사 클래스를 호출하고 있습니다. 올바른 일을하는 지 확실하지 않으므로 그렇지 않은 경우 자유롭게 말하십시오.
@RequestMapping(value = "/processBulletin", method = RequestMethod.POST)
public String processBulletin(
@ModelAttribute("bulletin") Bulletin bulletin, BindingResult result) {
final BindException errors = new BindException(bulletin, "bulletin");
bulletinValidator.validate(bulletin, errors);
if (errors.hasErrors()) {
return "redirect:/approvedBulletins";
} else {
// rest of method
}
return "redirect:/approvedBulletins";
}
내 유효성 검사 등급입니다. 당신은 오류가있을 때
@Override
public boolean supports(Class<?> cls) {
return Bulletin.class.isAssignableFrom(cls);
}
@Override
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "subject", "Subject is required");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "Name is required");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "note", "Message is required");
}
}
이것은 작동하지 않았습니다. approvedBulletins는 실제로 실행하려는 메소드에 대한 액션이며 실제보기는 아닙니다. –
리디렉션을 사용하면 오류가 발생합니다. 그러나 동일한 시야로 돌아 오면 표시해야합니다. – Alex
알겠습니다.하지만 approvedBulletins는 실제보기가 아닙니다. 그것은 원하는보기를 반환하는 메서드에 대한 RequestMapping의 URL입니다. 실제 시각을 넣어야합니까? –