컨트롤러에서 뷰로 넘기는 데이터 객체를 model 이라 한다.
모델(내용)과 뷰의 이름(목적지) 를 같이 넘기는 방법 ModelAndView 반환타입을 쓴다.
Spring에서 웹 제어이동 방식 기본값은 forward() 방식이다. redirection() 방식은 뷰의 이름(XXX)을 "redirect:XXX" 과 같이 넘겨주면 된다.
3-0. 리다이렉트를 쓰려면 다음과 같이 넘어가려는 url을 다 써줘야한다.
ex) "redirect:index.jsp" or "redirect:index.do"
3-1. redirection방식은 쓰지 않는 것 같음. 단지, 다른 컨트롤러로 갈 때, "redirect: XXX.do" 를 쓸 수 있음. 이 때, ModelAndView를 리턴한다면, 세팅한 데이터도 같이 넘겨 줄 수 있음.
View에서 쓰이는 다른 자원들(css, js, img) 등등은 다음과 같이 resources/ 에 넣어준다.
이 때, View에서 이런 자원들을 어떻게 매핑해야 할까? 그 답은 servlet-context.xml 에 나와있다.
<resources mapping="/resources/**" location="/resources/" />
<resources mapping="/js/**" location="/resources/js/" />
@GetMapping("/write.do")
public String write() {
return "/board/write";
}
@PostMapping("/write.do")
public String write(Board board) {
service.insertS(board);
return "redirect:list.do";
}
위의 메소드는 write.jsp로 이동하는 역할
밑의 메소드는 write.jsp에서 입력받은 데이터를 처리하는 역할.
같은 url로 매핑해 주었다.
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<servlet-name>appServlet</servlet-name>
</filter-mapping>
몇줄안되는데 다음글이랑 합쳐보세요