* 공지사항 & detail controller 추가 및 jsp 수정 파트는 모두 동일해서 공지사항으로만 정리함*

 

 

[1] html 파일 > jsp 파일로 변경

세팅만 되어있다면야 jsp화 시키는건 쉽다. 쉬운데... 컨트롤러랑 이어주는게 문제.

 

 

 

 

[2] 공지사항 컨트롤러 생성

: 현재 뷰는 WEB-INF - view - notice 아래에 각각 list.jsp, detail.jsp로 생성되어 있다. ▶ 해당 뷰 경로로 컨트롤러가 반환할 수 있게 잡아주기.

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class ListController implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		ModelAndView mv = new ModelAndView("notice/list"); // 뷰가 있는 정보 전달
		//mv.setViewName("/WEB-INF/view/notice/list.jsp"); 
		return mv;
	}
}

👉 컨트롤러를 통해 값을 반환받아 뷰로 내보낼 경로를 지정해주기.

 

 

 

[3] 컨트롤러 만든 후엔 dispatcher servlet에 url - mapping✨

❣❣❣❣❣ 이 부분 까먹어서 detailController 만들고 jsp 수정해놓고도 연결이 안됨! ❣❣❣❣❣

dispatcher-servlet.xml 에 빈 추가. id는 컨트롤러에 설정해준 매핑과 일치시키면 된다. 여긴 디테일까지 추가된 화면을 캡쳐해왔네.

 

 

 

[4] 서버 구동 - JSP 반환되는지 확인하기

👉 서버를 돌려서 공지사항으로 가기 위한 메뉴에 커서를 올렸을때, 왼쪽 하단에 경로가 list.html로 뜬다면, 이건 컨트롤러를 통해 jsp로 반환되는게 아니라 기존에 정적화면으로 반환되던 html과 연결되어 있다는 뜻.

list.html > list

👉 해당 페이지인 index.jsp 내부에 가서 해당 버튼과연결된 하이퍼링크를 확인하고, jsp로 연결해준다. 이동된 화면에서도 주소창에 html이 아닌지 더블체크 해주기.

 

 

 


✅ 즉, dispatcher-servlet.xml에서는 url을 보고 어떤 객체를 끌어올건지 세팅해놓는 것.

✅  각 jsp에서는 버튼을 눌러 이동시에 원하는 url로 들어가 있는지 확인하는 것.

 

<순서>

url ▶ dispatcher-servlet로 해당 클래스(컨트롤러)로 이동 ▶ Controller에서 정리된 값과 뷰 전달 ▶ 모델 받고 jsp 로 view 송출 (한바퀴 완) ▶ 클라에서 원하는 버튼 누르기 ▶ url 전송 ▶ dispatcher-servlet ▶ Controller ▶ 값 받아서 view보내기 (두바퀴 완) 

 


 

 

[5] 뷰 집중화 필요성

: index.jsp의 헤더에 있는 '고객센터' 메뉴의 list.html 을 jsp로 변경해놓았는데, list.jsp, detail.jsp 에 있는 '고객센터'메뉴(list.html)도 모두 일일히 jsp로 수정해줘야하는 상황이 발생한다.

👉 maven library 기능을 사용하여 뷰 페이지 집중화 진행할 예정.

 

 

+ Recent posts