ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MVC게시판] 게시판 글보기
    Web (Spring ) 2016. 8. 18. 21:36

    BoardController.java


    /*

    해당 게시글 고유번호(PK)를 가지고있어야 한다.

    boardService.getBoard(map.getMap())

     */

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @RequestMapping(value="/board/view.do", method=RequestMethod.GET)
        public ModelAndView getView(CommandMap map){
            
            Map<String,Object> getBoard = boardService.getBoard(map.getMap());
    //        System.out.println("GET BOARD:" + getBoard.toString());
            ModelAndView mv = new ModelAndView("/board/view");
            mv.addObject("map", getBoard);
            return mv;
        }





    BoardService.java

    /*

    map 담아줘야 하기 때문에 다음과 같이 선언

     */

    1
    2
        //게시글 조회
        Map<String, Object> getBoard(Map<String, Object> map);




    BoardServiceImpl.java

    /* 

    dao 연결

     */

    1
    2
    3
    4
    @Override
        public Map<String, Object> getBoard(Map<String, Object> map) {
            return boardDAO.getBoard(map);
        }




    BoardDAO.java

    /* 

    selectOne을 자세히 보아야한다. getBoard

    게시물의 고유번호(PK)를 가져와야 하기에

    mybatis 메소드인 selectOne을 가져온다.

     */

    1
    2
    3
    4
    @SuppressWarnings("unchecked")
        public Map<String, Object> getBoard(Map<String, Object> map) {
            return (Map<String, Object>) selectOne("board.getBoard", map);
        }




    Board_SQL.xml

    /* 

    parameterType="hashmap"

    where 조건으로 BOARDNO(PK)

     */

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        <!-- 게시글 조회 -->
        <select id="getBoard" parameterType="hashmap" resultType="hashmap">
        
            SELECT * 
                FROM
                    BOARD 
            WHERE 
                BOARDNO = #{BOARDNO}
            
        </select>



    list.jsp


    1
    2
    3
    4
    5
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>  
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <script type="text/javascript">
     
        function fn_write(){
            
            // window.name = "부모창 이름";            
            window.name = "boardList";
            
             // window.open("자식창 이름", "불러올 자식 창의 닉네임", "팝업창 옵션");
            window.open('/board/write.do''_blank''width=100px','height=100px');
            
        }
     
        function fn_getBoard(no){
            location.href = "/board/view.do?BOARDNO="+no;
        }
        
    </script>



    /* 

    상단에 taglib을 다음과 같이 설정한다.

    JSTL

    13번 라인 파라미터를 던져준다.

     */


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
            <c:if test="${!empty map }">
                  <c:forEach var="b" items="${map }">
                      <tr>
                          <td class="t-inactive">${b.BOARDNO }</td>
                          <td><a href="#" onclick="fn_getBoard(${b.BOARDNO});">${b.TITLE }</a></td>
    <%--                       <td><a href="/board/view.do?BOARDNO=${b.BOARDNO }">${b.TITLE }</a></td> --%>
                          <td>${b.WRITER }</td>
                          <td class="t-status t-scheduled">
                              <fmt:formatDate pattern="yyyy-MM-dd" value="${b.REG_DATE }" />
                          </td> 
                          <td class="t-status t-draft">${b.HIT_CNT }</td> 
                      </tr>
                  </c:forEach>
              </c:if>
              
              <!-- 게시물이 비었을 시에 -->
              <c:if test="${empty map }">
                  <tr>
                      <td colspan="20">현재 게시물이 존재하지 않습니다.</td>
                  </tr>
              </c:if>



    /* 

    <c:forEach를 사용하여 리스트 출력

    17번 라인 ${map }이 비었을 시에 다음과 같이 노출

    5번 라인 해당 함수 내에서 get방식으로 pk고유번호 넘기기(${b.BOARDNO})

    9번라인 date pattern 수정 "yyyy-MM-dd"

     */


    Result




Designed by Tistory.