ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Neither BindingResult nor plain target object for bean name ' ' available as request attribute 에러
    샤자의 개발일지/java 2025. 3. 24. 15:27
    728x90

    "Neither BindingResult nor plain target object for bean name ' ' available as request attribute"라는 에러는 주로 Spring MVC에서 발생하며, 이는 JSP 페이지에서 사용하는 <form:*> 태그가 모델 속성에 바인딩할 수 있는 객체를 찾을 수 없을 때 발생합니다.

     

    해결방안

     

    1. 모델 속성 추가
    컨트롤러에서 모델 속성을 추가하여 JSP 페이지에서 사용할 수 있도록 합니다. 예를 들어, 

    model.addAttribute("modelName", new ModelObject());와 같이 모델 객체를 추가합니다.

    -java
    @GetMapping("/path") public String getForm(Model model) { model.addAttribute("modelName", new ModelObject()); 

    return "formPage"; }

     


    2. modelAttribute 속성 확인
    JSP 페이지의 <form:form> 태그에서 modelAttribute 속성이 올바르게 설정되어 있는지 확인합니다. 이 속성은 컨트롤러에서 추가한 모델 객체의 이름과 일치해야 합니다.


    -xml
    <form:form modelAttribute="modelName"> <!-- form fields here --> </form:form>

     


    3. 오타 및 속성 이름 일치 확인
    모델 객체의 속성 이름과 JSP 페이지에서 사용하는 속성 이름이 일치하는지 확인합니다. 오타가 있으면 같은 에러가 발생할 수 있습니다.

     


    4. BindingResult 사용
    BindingResult는 모델 객체 바로 뒤에 위치해야 합니다.  모델 객체의 검증 결과를 저장하는 데 사용됩니다.
    -java
    @PostMapping("/path") public String submitForm(@ModelAttribute("modelName") ModelObject modelObject, BindingResult bindingResult) { // ... }

     


    5. JSP 페이지의 EL 태그 확인
    JSP 페이지에서 사용하는 EL 태그가 올바르게 사용되고 있는지 확인합니다. 필요 없는 EL 태그가 있으면 에러를 유발할 수 있습니다.

     

    저의 경우는 jsp 페이지에서 사용하는 속성이름에 대문자 소문자 오타가 있어서 컨트롤러 매핑부분에서 오타를 수정해주니 올바르게 경로를 찾아서 잘보이게 되었습니다. 항상 오타점검은 필수..

    728x90

    댓글

Designed by Tistory.