컨트롤러와 뷰

Structure of Knowledge·2021년 1월 19일
0
  1. 컨트롤러에서 뷰로 넘기는 데이터 객체를 model 이라 한다.

  2. 모델(내용)과 뷰의 이름(목적지) 를 같이 넘기는 방법 ModelAndView 반환타입을 쓴다.

  3. Spring에서 웹 제어이동 방식 기본값은 forward() 방식이다. redirection() 방식은 뷰의 이름(XXX)을 "redirect:XXX" 과 같이 넘겨주면 된다.
    3-0. 리다이렉트를 쓰려면 다음과 같이 넘어가려는 url을 다 써줘야한다.
    ex) "redirect:index.jsp" or "redirect:index.do"
    3-1. redirection방식은 쓰지 않는 것 같음. 단지, 다른 컨트롤러로 갈 때, "redirect: XXX.do" 를 쓸 수 있음. 이 때, ModelAndView를 리턴한다면, 세팅한 데이터도 같이 넘겨 줄 수 있음.

  4. View에서 쓰이는 다른 자원들(css, js, img) 등등은 다음과 같이 resources/ 에 넣어준다.

  5. 이 때, View에서 이런 자원들을 어떻게 매핑해야 할까? 그 답은 servlet-context.xml 에 나와있다.

<resources mapping="/resources/**" location="/resources/" />
<resources mapping="/js/**" location="/resources/js/" />
  1. 요청방식이 다를 때, 같은 이름으로 매핑해줘도 된다. (같으면 servlet.init() 에러가 나더라).
    ex)
	@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로 매핑해 주었다.
  1. 인코딩 필터는 web.xml에 설정해준다.
<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>
profile
객체와 제어, 비전공자 개발자 되기

1개의 댓글

comment-user-thumbnail
2021년 1월 20일

몇줄안되는데 다음글이랑 합쳐보세요

답글 달기