-
Neither BindingResult nor plain target object for bean name ' ' available as request attribute 에러샤자의 개발일지/java 2025. 3. 24. 15:27728x90
"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'샤자의 개발일지 > java' 카테고리의 다른 글
[Java] - 생성자, This 와 This() 차이점 (1) 2025.03.27 [JAVA] Class 간단하게 만드는 단축키 (2) 2025.03.25 JAVA - There is no READABLE property named " " in class 오류 (2) 2025.03.21 java-method 생성단축키 (2) 2025.03.20