Back-End/Spring
Oracle와 mybatis 연동 실습 (글상세보기 구현)
dlgkstjq12
2019. 6. 7. 14:13
URL 두가지 비교
http://localhost/spring02/memo/view.do?idx=6
이 방식은 view.do에 파라미터값으로 6을 넘겨주는 것이다. 따라서 idx 값에 따라 유동적으로 url이 변한다.
http://localhost/spring02/memo/view/6
view의 주소가 6으로 고정적으로 되어있다.
view 뒤에 6(6에 해당하는 페이지)을 받으려면 @PathVariable를 사용해서 값을 받아주어야 한다
ex) http://localhost/spring02/memo/view/6 에서 6을 받고 싶을때..
@RequestMapping("view/{idx}")
public ModelAndView view(@PathVariable int idx, ModelAndView mav)
{
~~~~~~
~~~~
}
-글상세보기 구현-
memo_list.jsp 중 일부
글 내용(메모)를 누르게 되면 글 상세보기 페이지로 이동하게 하는 자바스크립트 구문
1 2 3 4 5 6 | <script> //글내용를 누르게 되면 //글번호를 매개값으로 받고, 그 글번호에 대한 상세정보 페이지를 출력함 function memo_view(idx){ location.href="${path}/memo/view/"+idx; } </script> | cs |
1 2 3 4 5 6 7 8 | <tr> <td>${row.idx }</td> <!-- row에서 값들을 하나씩 불러온다. --> <td>${row.writer }</td> <!--메모 내용을 클릭하면 메모뷰를 호출하고 그쪽에 글번호를 넘긴다.--> <td><a href='#' onclick="memo_view('${row.idx}')">${row.memo }</td> <td> <fmt:formatDate value="${row.post_date}" pattern="yyyy-MM-dd HH:mm:ss" /></td> </tr> | cs |
MemoController.java 중 일부
1 2 3 4 5 6 7 8 | //http://localhost/spring02/memo/view/6 => @PathVariable @RequestMapping("view/{idx}") //@PathVariable 어노테이션을 사용해서 글 번호값을 받아오고 //mav에 setViewName 메소드를 사용해 출력할 페이지를 지정하고 mav에 저장 //아까 받은 글번호를 매개값으로 출력페이지로 이동하게하고 그 이름을 "dto"라 하고 mav에 저장하고 //mav를 리턴한다. public ModelAndView view(@PathVariable int idx, ModelAndView mav) { mav.setViewName("memo/view"); //출력할 페이지를 지정 mav.addObject("dto",memoService.memo_view(idx)); //데이터를 저장 return mav; //출력 페이지로 이동함 } | cs |
MemoServiceImpl.java (인터페이스 구현 클래스)
1 2 3 4 | @Override public MemoDTO memo_view(int idx) { return memoDao.memo_view(idx); } | cs |