Oracle와 mybatis 연동 실습 (글상세보기 구현)

Back-End/Spring 2019. 6. 7. 14:13
728x90
반응형

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


728x90
반응형
: