Date타입의 필드를 서버에서 넘기고, jsp에서 작업할때 js유틸함수 // 시간 값을 입력받아서 보여주는 함수 function displayTime(timeValue) { // 입력된 시간 값을 Date 객체로 변환 timeValue = new Date(timeValue); // 현재 시간을 나타내는 Date 객체 생성 var today = new Date(); // 현재 시간과 입력된 시간의 차이를 밀리초 단위로 계산 var gap = today.getTime() - timeValue; // 입력된 시간을 나타내는 Date 객체 복사 var dateObj = new Date(timeValue); // 결과를 저장할 문자열 변수 초기화 var str = ""; // 현재 시간과 입력된 시간의 차이가 2..
Study/도서)코드로배우는스프링웹프로젝트
개발공부/springMybatis는 SQL을 그대로 사용할 수 있기 때문에 인라인뷰를 이용하는 SQL을 작성하고, 필요한 파라미터를 지정하는 방식으로 페이징 처리를 함. 1) 페이징 번호 2) 한 페이지당 몇 개의 데이터를 보여줄 것인지 페이지번호와 몇 개의 데이터가 필요한지를 별도의 파라미터로 전달하는 방식도 나쁘지않지만, 아예 이 데이타들을 하나의 객체로 묶어서 전달하는 방식이 확장석이 좋음. 1. MyBatis 처리와 테스트 PagingVO.java package org.project.domain; import lombok.Data; @Data public class PagingVO { private int pageNum; // 페이지 번호를 나타내는 변수 private int amount; // 페이지 당 항목 수를..
conteroller의 작성 스프링 MVC의 Controller는 하나의 클래스 내에서 여러 메서드를 작성하고, @RequestMapping등을 이용해 URL을 분기하는 구조로 작성한다. 과거 이 단계에서 Tomcat(Was)를 실행하고, 웹화면을 만들어 결과를 확인하는 코드를 확인했지만, 시간도 오래걸리고 테스트 자동화하기에도 어려움이 있다. Boardcontroller의 분석 원하는 기능을 호출하는 방식은 테이블로 정리하는 게 좋다. From 항목은 해당 URL을 호출하기 위해 별도의 입력화면이 필요하다는 것을 의미(화면구성) Task URL Method Parameter From URL 이동 전체 목록 /board/list GET 등록 처리 /board/register POST 모든 항목 입력화면 ..
영속 계층은 데이터베이스를 기준으로 설계를 나눠구현하지만, 비지니스 계층은 로직을 기준으로 해서 처리한다. 쇼핑몰에서 상품을 구매한다. 해당 쇼핑몰의 로직이 `물건을 구매한 회원에게는 포인트를 올려준다`라고 가정하면 영속계층: `상품`, `회원` 비지니스계층: 구매서비스(`상품영역`, `회원영역`을 동시에 사용하여 하나의 로직을 처리하도록 설계) 비즈니스 계층의 설정 설계를 할 때 각 계층 간의 연결은 인터페이스를 이용해 느슨한연결을 한다. service패키지 생성 /BoardService 클래스 생성(인터페이스) /BoardServiceImpl 클래스 생성(구현 클래스) BoardMapper객체를 주입받는 생성자를 생성하려면 1. 모든 파라미터를 이용하는 생성자를 만드는 @AllArgsConstruct..