2013-04-08 3 views
0

간단한 양식의 유효성 검사를 시도합니다. 유효성 검사는 잘 실행되지만 결과 페이지에는 오류가 표시되지 않습니다. 속도를 사용하여 페이지를 렌더링합니다. 저는 스프링 웹 사이트에서 PetClinic 프로젝트를 예로 사용했습니다. 내가 디버그에 갈 때봄 MCV 3 showErrors가 표시되지 않습니다.

@Controller 
@RequestMapping("/subscription") 
public class SubscriptionController { 

@RequestMapping(value = "/newCustomer", method = RequestMethod.POST) 
public String processSubmit(@ModelAttribute Customer customer, BindingResult result, SessionStatus status) { 

    new CustomerValidator().validate(customer, result); 
    if (result.hasErrors()) { 
     return "subscription"; 
    } 
    else { 
     status.setComplete(); 
     return "redirect:/admin"; 
    } 
} 

} 

, 나는 오류를 참조하십시오 나는 "포스트 형태"버튼을 쳤을 때

여기 내 컨트롤러입니다. 구독 페이지에서 성공적으로 리디렉션되었지만 오류는 표시되지 않습니다.

내 웹 페이지 (간체) :

... 

      #springBind("customer") 
      #springShowErrors("<br/>" "") 
      <form class="form-horizontal" method="post" action="#springUrl("/subscription/newCustomer/")"> 

         .... 

         <!-- Button --> 
         <div class="controls"> 
          <button class="btn btn-primary">#springMessage("website.subscription.signup")</button> 
         </div> 

      </form> 

... 

다른 작업을해야하는 경우가 말해 주저하지 않습니다. 당신의 도움을 주셔서 감사합니다! 나는 며칠 이래 붙어있다.

답변

0

편집 : 마침내 오류가 발견되었습니다. 그것은 springBind 태그와 함께했습니다. 나는 관련된 오류를 표시하기 위해 필드를 바인딩해야한다는 것을 잘 이해하지 못했습니다. 다음은 트위터 부트 스트랩 프레임 워크에 대한 하나의 필드에 대한 고정 코드입니다.

    #springBind("customer.name") 
        <div class="control-group #if(${status.error})error#end"> 

         <!-- Prepended text--> 
         <label class="control-label">#springMessage("website.subscription.name")</label> 
         <div class="controls"> 
          <div class="input-prepend"> 
           <span class="add-on"><i class="icon-user"></i></span> 
           <input class="input-xlarge" 
            placeholder="John Doe" id="name" name="name" type="text">         
          </div> 
          <p class="help-block">         
           #springShowErrors("<br/>" "") 
          </p> 
         </div> 

        </div> 

springShowErrors (...)는 POJO 고객의 필드 이름과 관련된 모든 오류를 표시합니다.

관련 문제