문제

현재 컨트롤러에서 OnSubmit ()에서 모델을 반환하려고합니다. 그런 다음 JSP에서 이것을 검색하려고합니다.

예를 들어

Map model = new HashMap();
model.put("errors", "example error");
return new ModelAndView(new RedirectView("login.htm"), "model", model);

그런 다음 다시 검색하십시오

<c:out value="${model.errors}"/>

그러나 이것은 아무것도 표시하지 않습니다. 올바른 redirectView로 이동하여 오류가 발생하지 않지만 텍스트는 표시되지 않습니다.

모든 도움은 대단히 감사하겠습니다.

감사해요

도움이 되었습니까?

해결책

RedirectView가하는 일은 브라우저로 리디렉션 헤더를 전송하는 것입니다. 브라우저는 페이지를 완전히 다시로드하는 것입니다. 결과 모델은 자체 모델로 로그인 컨트롤러에 의해 처리되므로 결과 모델이 전달되지 않으므로.

당신이 할 수있는 것은 요청 속성을 통해 오류를 전달하는 것입니다.

당신의 견해에서.

loginController.(class)=org.springframework.web.servlet.view.InternalResourceView
loginController.url=/login.htm

그런 다음 REDIRECTVIEW RETORT :

request.setAttribute("errors", "example errors");
return new ModelAndView("loginController");

로그인 컨트롤러 에서이 속성을 확인하고 모델에 추가하십시오.

업데이트: view.properties를 사용하지 않고 :

request.setAttribute("errors", "example errors");
return new ModelAndView(new InternalResourceView("/login.htm"));

또는 app-servlet.xml에 (다른) 내부보기 리졸버를 추가 할 수 있습니다 (API : viewResolvers를 체인 할 때 내부리스 소시 뷰 레졸버는 항상 마지막 자원을 해결하려고 시도하므로 항상 뷰 이름을 해결해야하므로 항상 마지막이어야합니다. 실제로 존재합니다.) : :

<bean id="viewResolver2"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
</bean>

그리고 만 사용하십시오.

request.setAttribute("errors", "example errors");
return new ModelAndView("/login.htm");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top