썸머노트 기본 예제 이번포스팅에서는 아래와 같은 썸머노트 라이브러리를 이용해서 텍스트에디터를 셋팅하는 법을 알아보자. 1.라이브러리 참조 썸머노트는 부트스트랩을 기반으로 디자인되어있기 때문에, 부트스트랩 관련 css, js파일과 함께 썸머노트 js, css 파일을 같이 참조해준다. 2.썸머노트 불러오기 아래 코드를 이용해서 썸머노트를 불러오고. 작성 버튼을 누르면 썸머노트에 작성된 글이 콘솔로그에 찍히도록 로직을 작성한다. 게시판 설명을 간단하게 적어주세요. 작성 3.스크립트 작성 먼저 썸머노트에 값을 넣어주는 로직을 작성한다. 예를 들어 db에서 썸머노트에서 작성한 데이터를 불러왔다고 가정하고, 한번 썸머노트에 뿌려줘 보았다. 참고로 썸머노트에 글을 넣어줄때는 썸머노트를 초기화 하기 전에 값을 넣어줘야..
스프링 프로젝트 개발할때 기본 화면구성 스프링 프로젝트 개발할때마다 사용하는 기본 화면 구성이 있다. 헤더부분과 메뉴부분, 풋터부분을 나누는 작업이다. 개발 할때마다 자주 사용하게 될 것 같아서 정리해보았다. 디자인은 bootstrap을 사용했고, 화면은 jsp를 이용해서 구성했다. 상세화면 리스트화면 컨트롤러 특정 URL을 호출했을때 해당 페이지를 넘겨 주는 Controller 를 아래와 같이 작성한다. //상세보기 화면 @RequestMapping(value = "/bookDetail", method = RequestMethod.GET) public String bookDetail(Locale locale , HttpServletRequest request, Model model) { System.o..
스프링 RestTemplate으로 HTTP Get 방식 요청하기 스프링에는 HTTP 통신을 할 수 있는 여러가지 모듈이 있는데, 그중에 하나가 RestTemplate 이다. RestTemplate org.springframework.web.client 패키지에 존재한다. 이 RestTemplate 클래스를 사용하면 HTTP 요청과 응답이 간단해진다. Get 방식으로 요청 1 - 컨트롤러 RestTemplate을 이용해서 HTTP GET 방식으로 요청하는 로직은 아래와 같다. 먼저 RequestMapping 어노테이션으로 /rest/resttwo 로 요청이 들어오는 Post 방식의 url을 처리하겠다고 작성해준다. 그리고 Post 방식으로 요청할때 넘겨주는 json 형식의 파리미터를 RequestBody ..
스프링 Mybatis 로그 이쁘게 출력하기 1.의존성 추가 마이바티스 쿼리 로그를 이쁘게 출력해주는 라이브러리 의존성을 pom.xml 추가해준다. org.lazyluke log4jdbc-remix 0.2.7 2.log4j.xml 수정 log4j.xml 파일 내용을 아래와 같이 작성해 준다. 3.sqlSession.xml 파일 수정 db설정하는 부분을 아래와 같이 변경해준다. 변경된점은 기존의 BasicDataSource Bean 설정태그에서 id를 dataSource 에서 dataSourceSpied로 변경해 주었다. 그리고 새로 추가된 Log4jdbcProxyDataSource 클래스의 bean id를 dataSource로 지정해 주었다. 이 부분을 제외하고 나머지 sqlSessionBean도 참조하는..
✅ 시나리오 아래와 같이 총 4개의 페이지가 있다. 먼저 사용자는 웹에 접속하면 login.jsp 페이지를 통해서 로그인 인증을 거쳐야 한다. login.jsp에서 로그인 성공을 하면 top.jsp로 이동된다. 그리고 top.jsp 에서 a 태그를 통해서 user.jsp 또는 admin.jsp 로 이동 할 수 있다. 이 부분은 나중에 인가 관련 기능을 구현하기 위해서 user.jsp, admin.jsp 를 만들었기 때문에 여기서는 중요하지 않다. 여기서 중요한것은 login.jsp와 top.jsp이다. 스프링 시큐리티를 통해서 어떻게 login.jsp를 거쳐서 top.jsp로 갈 수 있는지 살펴보자. -user.jsp 페이지(유저권한페이지) -admin.jsp 페이지(관리자권한 페이지) ✅ 스프링 프로젝..
1.VO 클래스 작성 package sample.customer.biz.domain; import java.util.Date; import javax.validation.constraints.AssertFalse; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import org.spri..