본문 바로가기

728x90
반응형

Spring

[코드로 배우는 스프링 웹 프로젝트] ch16 REST 방식으로 전환 3(@RestController, 테스트 방법) https://bobo12.tistory.com/315 3. @RestController에서 파라미터 ▷ @Controller에서 사용하던 일반적인 타입이나 사용자가 정의한 타입(클래스)을 사용 ▶ @PathVariabel : 일반 컨트롤러에서도 사용이 가능하지만 REST 방식에서 자주 사용 됨 URL 경로의 일부를 파라미터로 사용할 때 이용 ▶ @RequestBody : JSON 데이터를 원하는 타입의 객체로 변환해야 하는 경우 주로 사용 (1) @PathVariable ▷ REST 방식에서는 URL 내에 최대한 많은 정보를 담으려고 노력함 ▷ '?' 뒤에 추가되는 쿼리 스트링이라는 형태로 파라미터 전달되던 데이터들이 REST 방식에서는 경로의 일부로 차용되는 경우가 많음 ▷ @PathVariable .. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch16 REST 방식으로 전환 2(JSON, XML, 객체 반환, ResponseEntity) https://bobo12.tistory.com/314 (2) 객체의 반환 ▷ JSON, XML을 이용함 ◎ src/main/java/org.codehows.domain → SampleVO 클래스 생성 package org.codehows.domain; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class SampleVO { private Integer mno; private String firstName; private String lastName; } 비어 있는 생성자를 만들기 위한 @NoArgsC.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch16 REST 방식으로 전환 1(@RestController) ◎ REST(Representational State Transfer) ▷ URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념에 전송방식을 결합해 원하는 작업 지정 ▶ '/boards/123'은 게시물 중 123번이라는 고유한 의미를 가지도록 설계 ▶ GET, POST 방식과 같이 추가적인 정보를 통해 결정 ▷ 스프링의 REST 방식의 데이터 처리를 위한 여러 종류의 어노테이션과기능이 있음 NO 어노테이션 기능 1 @RestController Controller가 REST 방식을 처리하기 위한 것임을 명시합니다. 2 @ResponseBody 일반적인 JSP와 같은 뷰로 전달되는 게 아니라 데이터 자체를 전달하기 위한 용도 3 @PathVariable URL 경로에 있는 값을 파라.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch15 검색 처리 3(목록, 검색 버튼 이벤트, 수정, 삭제) https://bobo12.tistory.com/312 4. 화면에서 검색 조건 처리 ▷ 페이지 번호가 파라미터로 유지되었던 것처럼 검색 조건과 키워드 역시 항상 화면 이동 시 같이 전송되어야 함 ▷ 화면에서 검색 버튼을 클릭하면 새로 검색을 한다는 의미이므로 1페이지로 이동 ▷ 한글의 경우 GET 방식으로 이동하는 경우 문제가 생길 수 있으므로 주의 (1) 목록 화면에서 검색 처리 ◎ llist.jsp 수정(테이블 밑에 search 내용 추가) -- 제목 내용 작성자 제목 or 내용 제목 or 작성자 제목 or 내용 or 작성자 Search http://localhost:8080/board/list 에서 검색하면 아래와 같은 창이 출력되며 검색 기능도 적용 됩니다. ▷ Chrome 브라우저는 한글로 검.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch15 검색 처리 2(type, keyword) https://bobo12.tistory.com/311 3. 검색 조건 처리를 위한 Criteria의 변화 ▷ 페이징 처리에 검색 조건 처리가 들어가면 Criteria의 변화가 필요(기존은 pageNum, amount 라는 파라미터 수집) ◎ Criteria.java 클래스 수정(내용 추가) public class Criteria { ...(생략)... private String type; private String keyword; ...(생략)... public String[] getTypeArr() { return type == null? new String[] {}: type.split(""); } } ▷ Criteria 클래스는 type과 keyword라는 변수를 추가 ▷ getter, sette.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch15 검색 처리 1(sql, MyBatis 동적 태그) ◎ 검색 조건 ▷ 태그를 이용하거나 이용하는 경우가 많음 ▷ 최근 일반 웹사이트 사용자들의 경우 를 사용, 관리자용이나 검색 기능이 강한 경우 이용 1. 검색 기능과 SQL ▷ 게시물 검색 기능은 다음과 같이 분류 가능 ▶ 제목/내용/작성자와 같이 단일 항목 검색 ▶ 제목 or 내용, 제목 or 작성자, 내용 or 작성자, 제목 or 내용 or 작성자와 같은 다중 항목 검색 where문 뒤에 검색 조건이 추가되고, rownum 조건이 뒤따르게 하면 문제가 없음 (1) 다중 항목 검색 ▷ 2개 이상의 조건이 붙는 다중 항목의 검색이 문제 ◎ 제목이나 내용 중에 'TEST'라는 문자열이 있는 게시물들을 검색하는 SQL select * from ( select /*+ INDEX_DESC(tbl_board pk.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch14 페이징 화면 처리 2(script, get, modify) https://bobo12.tistory.com/309 4. 조회 페이지로 이동 ▷ 원하는 페이지로 이동하지만 3페이지에 있는 게시글을 클릭한 후 다시 목록(List 클릭)으로 이동하면 무조건 1페이지 목록 페이지로 이동함 ▷ 태그에 추가로 게시물의 번호를 같이 전송하고, action 값을 조정해서 처리 가능 ◎ list.jsp 일부 수정(move 클래스 추가) --%> ◎ Script부 게시물 조회를 위한 이벤트 처리 추가 $(".move").on("click",function(e) { e.preventDefault(); actionForm.append(""); actionForm.attr("action","/board/get"); actionForm.submit(); }); 해당 게시물 제목에 마우스.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch14 페이징 화면 처리 1(startPage, endPage) ◎ 페이징 화면 처리 ▷ 화면 밑에 페이지 번호를 표시하고 사용자가 페이지 번호를 클릭할 수 있게 처리 ▶ 브라우저 주소창에서 페이지 번호를 전달해서 결과를 확인하는 단계 ▶ JSP에서 페이지 번호를 출력하는 단계 ▶ 각 페이지 번호에 클릭 이벤트 처리 ▶ 전체 데이터 개수를 반영해서 페이지 번호 조절 1. 페이징 처리시 필요한 정보들 ▷ 현재 페이지 번호(page) ▷ 이전과 다음으로 이동 가능한 링크의 표시 여부(prev, next) ▷ 화면에서 보여지는 페이지의 시작 번호와 끝 번호(startpage, endPage) (1) 끝 페이지 번호, 시작 페이지 번호 ▷ 페이징 처리를 위해 현재 사용자가 보고 있는 페이지의 정보가 중요 ▷ 끝 번호를 먼저 계산해 두는 것이 수월함 ◎ 페이지 끝 번호(end.. 더보기

728x90
반응형