본문 바로가기

웹 개발(OLD)/Spring Framework(OLD)

(22)
jsp파일이 웹브라우저로 응답되는 과정 위와 같이 views폴더밑에 fortune.jsp 페이지를 뒀었다. jsp라는게 java기반인데 그러면 클라이언트로 응답을 하려면 결국 java파일이 컴파일되어서 class파일로 되어야 한다는건데 어떻게 그리고 언제 이런 작업들이 되는걸까? 위의 views폴더에 해당하는 서버쪽의 경로로 찾아가보면 아래 처럼 .jsp파일은 없고 .java파일과 .class파일이 있다.즉, 작성된 fortune.jsp파일은 fortune.java파일로 바뀌어 저장되어있다가 해당 jsp페이지로의 요청이 클라이언트로부터 최초로 들어왔을때, .java파일이 컴파일되어 .class파일이된다. 그리고 이 내용이 클라이언트로 응답되는 것이다.즉, 웹브라우저에서 fortune.do 라는 경로로 요청이 들어왔다고 하면, 비즈니스 로직을 ..
스프링 게시판 검색처리(동적 SQL) 1. 먼저 검색 처리를 위해서는, 게시물 검색을 하고 페이지가 이동되더라도 검색조건과 관련된 파라미터가 페이지 간 유지되어야 한다. 따라서 현재 페이지 번호(page), 페이지당 보여지는 데이터 수(perPageNum), 검색 옵션(searchType), 검색 키워드(keyword)의 네 가지 정보가 필요하다. 이미 Criteria 클래스에서 page, perPageNum을 관리하고 있기 때문에 이를 상속받아 searchType, keyword를 함께 관리하는 SearchCriteria 클래스를 만든다.(getter & setter, toString() 생략) 2. 그럼 검색처리까지 완료된 게시물 CRUD를 관리할 컨트롤러인 SearchBoardController를 만들고 가장 먼저 리스트 페이지를 띄워..
페이지간 정보 유지( 목록 -> 조회 -> 삭제 -> 원래 목록페이지 ) 특정 게시물 조회 페이지에서 삭제를 했을 때, 삭제 처리 후 다시 원래 보고 있었던 리스트페이지로 이동하고 싶었다. redirect를 이용하여 웹페이지를 이동할 때 RedirectAttributes 클래스의 addAttribute() 또는 addFlashAttribute() 를 이용한다. 그래서 session에 값을 담았다가 한 번 사용되고 나면 자동으로 없어지는 addFlashAttribute()를 이용하여 시도해봤다. 즉,1. readPage.jsp 에서 아래와 같이 form 태그에서 hidden타입으로 page, perPageNum, bno값을 가지고 있는 상태에서( 이 값들은 목록 페이지에서 model에 담아서 넘겨준 값들이다.) 아래의 삭제 버튼을 클릭한다. 2. 그러면 해당 버튼의 클릭 이벤트..
스프링 애노테이션 종류 http://noritersand.tistory.com/156
Spring 게시글 CRUD 1. 게시글의 TITLE을 클릭하면 해당 게시글을 조회할 수 있도록 링크를 걸어준다. 1-1. 그러면 컨트롤러에서 @RequestParam을 이용해서 요청으로 들어온 bno를 읽어온다. 그리고 해당하는 게시글을 DB에서 가져와 Model객체에 담아준다. 2. 그러면 화면에 해당 게시글 정보를 뿌려주면 되는데, 이때 조회 페이지다보니까 읽기 전용이어야 한다. 따라서 각 에 readonly속성을 추가해준다. 이때 중요한게 조회페이지에서 추후 삭제나 수정을 처리할 때 bno값을 넘겨주어야 한다. 근데 딱히 조회페이지에서는 bno를 보여줄 필요는 없기 때문에 hidden 타입으로 갖고 있고 버튼을 누를 때 이 값이 보내지도록 from 태그로 감싸놓는다. 수정, 삭제, 그리고 다시 모든 리스트조회 페이지로의 이동..
Spring 페이지 무한스크롤 구현한 결과부터 보면 ( 기능에 초점을 뒀다.. 매끄럽지는 않다. ) 구현 과정 1. 먼저 최초에 미리 정한 뿌려줄 갯수인, 20개의 게시물 리스트를 띄워준다. 경로는 /board/listAll 1-1. 쿼리는 MySQL에서 제공하는 'limit 시작, 몇개까지' 를 이용해서 20개를 뿌려주도록 한다.1-2. (Mapper를 호출하는 DAO클래스, dao를 호출하는 Service 클래스는 생략하고, ) 컨트롤러에서 이 20개의 데이터를 DB로부터 받아와서 Model객체에 list라는 키 값으로 담은 후, View로 보낸다. 이때 메소드의 리턴 타입이 void이므로 해당경로 즉, board/listAll.jsp를 렌더링 하게된다.1-3. 그러면 listAll.jsp에서는 jstl의 c:forEach문을 이..
jstl 날짜 format 먼저 format을 지정할 수 있는 태그 라이브러리를 포함시킨다. 이후 컨트롤러에서 model로 담아보내온 boardVO의 Date타입인 regdate 를 원하는 포멧으로 지정하면된다.
jstl c:forEach 사용 먼저 태그를 이용하기 위한 라이브러리를 포함시킨다. 그다음 컨트롤러에서 model에 담아보낸 List list를 items속성 값에 el로 넣고, var는 반복하는 도중의 현재 객체이다. 즉, list의 각 원소에 ${boardVO}로 접근할 수 있으며 원소의 값에는 ${boardVO.viewcnt} 의 형식으로 접근할 수 있다. ${boardVO.viewcnt}