본문 바로가기
Today I Learned

2021.03.22(Mon) 📌 TIL

by Elin J 2021. 3. 22.

==========================3월 22일 월요일===============================

 

💻 [수정처리 복습]

web.xml 문서확인 => servlet-context.xml =>dao-context.xml

 

실행 순서>>
        index.jsp -> ( boardList.do실행 ->) boardList.jsp -> 제목클릭-> boardDetail.jsp
                                                  (페이징, 검색, 댓글수)               (삭제, 수정, 다운로드, 댓글)

 

 

1> boardEdit.jsp문서에서 수정할 뷰문서
     ㅣ- boardController.java
           ㅣ- boardDAO.java 메소드 dbEdit(BoardDTO dto)
                 ㅣ- board.xml쿼리문기술

 

2> board.xml
     <update id="update> update ~ where hobby_idx=#{ } </update>

 

 

 

3> BoardDAO.java
      public void dbEdit(BoardDTO dto){ temp.update("board.update", dto) ; }

 

 

4> boardEdit.jsp문서 수정할 뷰문서

     <form  action="boardEdit.do" method  enctype > </form>

 

 

5> BoardController.java
      @RequestMapping("/boardEdit.do")
       public String board_update(BoardDTO dto){ dbEdit(dto) ; return "redirect:/boardList.do"; }

 

 

////////////////////////////////////////////////////////////////////////////////////////////////////////

💻 [페이징]

1> BoardDAO.java
     l - public List dbList(start, end){ //페이징 }
     l - public List dbList(start, end,skey, sval){ //페이징+검색 }
     l - public int dbSearchCount(skey, sval){ //검색필드, 검색키워드, 조회수 }

 

            참고) 순수jsp문서에서 페이징구현 참고 Web0105프젝 guestList.jsp문서
            참고) 서블릿문서에서 페이징구현 참고 Web0215프젝 guestController.java문서
                                                                                 GuestSQL.java문서--> dbSelectAll(int start, int end)

 

 

 

2> BoardDTO.java
      start, end, skey, sval 필드선언 후 리턴값 게터(X) / void 세터(매개인자)

 

3> board.xml쿼리문 기술

      <select id="selectAll777" resultType="net.hb.crud.BoardDTO">

       select ~~ where title like %s% (s라는 글자가 들어가면 다 검색)
     </select>

 

     <select id="selectAll789" resultType="net.hb.crud.BoardDTO">

      <!-- 선택한 [24] 클릭 ~~~ -->
         select   ~~
         고정 where rn between 231시작행 and 240끝행
         변수where rn between #{start} and {end}
     </select>

 

 

 

💡

<!-- 잠깐 검색 설명하자면 where title필드명 like '$s값%' -->
      틀림 select ~where #{skey} like '%#{sval}%
      반쪽정답 select ~ where ${skey} like '%#{sval}%'     ===>값이아닌 필드명 기술할땐 #아니고 $로 기술
      완전정답 select ~ where ${skey} like '%' || #{sval} || '%'   위처럼 쓰면 인식 안되니까 이렇게 

 

 

4> BoardController.java

     @RequestMapping("/boardList.do")
      public String board_select(Model model){
        삭제 성공 후 리스트페이지 이동할때 페이지번호를 선택하지않으면 자동으로 [1]선택되도록 함
        저장 성공 후 리스트페이지 이동할때 페이지번호를 선택하지않으면 자동으로 [1]선택되도록 함
      String pnum; pnum=request.getParameter("pageNum"); if(pnum==""||pnum==null){ pnum=="1"; }


      int pageNUM, temp;
      int start 231, end 240, startpage 21, endpage 30 ;   // [21] ~ [24]선택 ~[30][다음]
      int pagecount;   //316개데이터 있을때 총페이지 32
      List LG =dbList(start,end);   //DAO클래스 메소드중복
      model.addAttribute("pageCount", pageCount);
      //조회 String skey, sval, returnpage
      }

 

===============================================================================================================================================

 

오늘 수업까지 완성 화면~~~

[이전], [다음]버튼도 나오고 게시물 상세페이지로 들어가서 수정까지 모두 가능 :)

 

 

페이징 생각보다 어렵고 복잡하구나,,,😭

(특히..개인적으로 BoardController.java 여기 ...)

무튼 내일은 페이징처리 마무리하고 검색까지 !!!

 

 

 

 

 

'Today I Learned' 카테고리의 다른 글

2021.03.23(Thu) 📌 TIL  (0) 2021.03.23
2021.03.19(Fri) 📌 TIL  (0) 2021.03.19
2021.03.18(Thu) 📌 TIL  (0) 2021.03.18
2021.03.17(Wed) 📌 TIL  (0) 2021.03.17
2021.03.16(Thu) 📌 TIL  (0) 2021.03.17