2013-04-17 5 views
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>&nbsp;</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"); 
    } 
} 

답변

0

봅니다 view name 대신 리디렉션 return "redirect:/approvedBulletins";으로 돌아갑니다.

+0

이것은 작동하지 않았습니다. approvedBulletins는 실제로 실행하려는 메소드에 대한 액션이며 실제보기는 아닙니다. –

+0

리디렉션을 사용하면 오류가 발생합니다. 그러나 동일한 시야로 돌아 오면 표시해야합니다. – Alex

+0

알겠습니다.하지만 approvedBulletins는 실제보기가 아닙니다. 그것은 원하는보기를 반환하는 메서드에 대한 RequestMapping의 URL입니다. 실제 시각을 넣어야합니까? –