복붙노트

[SPRING] 봄 주석 @ModelAttribute 및 @Valid

SPRING

봄 주석 @ModelAttribute 및 @Valid

@ModelAttribute 및 @Valid을 사용하면 어떤 장점이 있나요?

어떤 차이가 있습니까?

그것은 함께 사용할 수 있습니까?

해결법

  1. ==============================

    1.@ModelAttribute 명명 된 모델 속성에 메서드 매개 변수 또는 메서드 반환 유형을 /지도를 결합하는 데 사용됩니다. @ModelAttributes의 JavaDoc을 참조하십시오. 이 봄 주석이다.

    @ModelAttribute 명명 된 모델 속성에 메서드 매개 변수 또는 메서드 반환 유형을 /지도를 결합하는 데 사용됩니다. @ModelAttributes의 JavaDoc을 참조하십시오. 이 봄 주석이다.

    @Valid은 JSR-303의 콩 검증하기위한 객체를 표시 주석이다. @Valids의 JavaDoc을 참조하십시오. 그것은 JavaEE 어플 (6)의 일부입니다,하지만 Hibernate는 대부분의 사람들이 대신 사용 이전 구현이 생각합니다.

    @ModelAttribute를 사용의 장점은 빈에 폼의 입력을 매핑 할 수 있다는 것입니다. @Valid의 장점은 만든 빈 규칙의 일부 집합에 대해 검증 될 수 있도록 JSR-303 콩 유효성 검사를 활용할 수 있다는 것입니다.

    네, 당신은 @ModelAttribute를 사용하여 함께 @Valid 수 있습니다.

    는 A 모델 객체에 형태 (원문보기)에서 데이터를 전송하는 가장 좋은 방법은 스프링을 사용하여 일반 / 전통적인 MVC 디자인 패턴을 따르는 것입니다. ModelAttribute 모 데르 세트, 태그 : <* 양식> 내 개인적인 선호하는 방법은 봄 JSTL과 JSP에서 양식을하는 것입니다. 컨트롤러에서 폼의 입력을 나타내는 빈입니다 일치하는 @ModelAttribute이있는 양식에서 POST를 받아들이는 핸들러를 가지고있다. 나는 다음 서비스 계층을 "양식 콩"/ 업데이트 / 등을 통해 (양식 모델 객체를 직접 작성하는 경우 필요 없음) 필요한 경우 어떤 모델로 "양식 콩"을 번역 및 저장을 포함하여 몇 가지를 할 되었 것이다 DAO를. 이 일을하는 한 가지 방법에 불과하다, 그러나 아마 내가 내 일상적인 작업에서 봄에하는 일의 대부분이다.

    내가보기 엔 봄의 참고 자료를 읽고 튜토리얼을 다음 추천 할 것입니다. 참조 자료는 아주 잘 따라하기 쉽게 작성, 당신은 봄에 일을 할 수있는 다양한 방법에 대한 예제를 많이 포함하고 당신이 봄에 일을하는 방법에 대한 꽤 몇 가지 옵션은 일반적으로 거기에있다.

  2. ==============================

    2.봄 참조 문서의 아래 부분을 확인하십시오 :

    봄 참조 문서의 아래 부분을 확인하십시오 :

    데이터뿐만 아니라 당신은 또한 오류 데이터 바인딩을 기록하는 데 사용 된 것과 동일한 BindingResult를 전달하는 사용자 정의 유효성 검사기를 사용하여 유효성 검사를 호출 할 수 있습니다 바인딩. 즉 데이터를 한 곳에서 축적 된 이후 사용자에게 다시보고 바인딩과 유효성 검사 오류 수 있습니다 :

    @RequestMapping(value="/owners/{ownerId}/pets/{petId}/edit", method = RequestMethod.POST)
    public String processSubmit(@ModelAttribute("pet") Pet pet, BindingResult result) {
        new PetValidator().validate(pet, result);
        if (result.hasErrors()) {
        return "petForm";
        }
    
        // ...
    }
    

    또는 검증은 JSR-303 @Valid 주석을 추가하여 자동으로 호출 할 수 있습니다 :

    @RequestMapping(value="/owners/{ownerId}/pets/{petId}/edit", method = RequestMethod.POST)
    public String processSubmit(@Valid @ModelAttribute("pet") Pet pet, BindingResult result)             {
        if (result.hasErrors()) {
            return "petForm";
        }
    
        // ...
    
    }
    
  3. from https://stackoverflow.com/questions/22658572/spring-annotations-modelattribute-and-valid by cc-by-sa and MIT license