분류 전체보기

    (7 - 1) 게시판 리스트파일(JSP File)에서 Model로 넘어온 데이터들을 JSTL과EL표기법을 활용해서 표현하기

    인제 Controller쪽에서 Model을 통해 넘어온 데이터를 JSP파일에서 JSTL과 EL표기법을 사용해서 사용자에게 보여줄것입니다. Controller쪽에서 넘어온 Model데이터는 all 과 pc인데 all은 사용자가 조회한 게시물들의 데이터들이 담겨져있는 List이고 pc는 PageCreator(네이게이션바를 만들기 위한 객체) 객체입니다. # list.jsp Insert title here 게시글 목록 번호 작성자 제목 작성일 조회수 ${v.boardNum} ${v.writer} ${v.title} ${v.viewCnt} 이전 ${pageNum} 다음 게시글 작성하기 5 10 15 제목 내용 작성자 제목+내용 Colored by Color Scripter cs

    (6) BoardController 구현

    Service부분이 모두 구현되었으면 마지막으로 Controller부분을 구현해주도록 하겠습니다. /list 와 /check 그리고 /modify 매핑에서는 클라이언트쪽에서 각각에 맞는 데이터가 필요하므로 페이지로 이동할때 데이터를 옮겨줄수있는 Model을 사용해서 프론트엔드쪽으로 넘겨주었습니다. 프론트엔드 쪽에서 Model데이터를 받아서 JSP파일에서 사용할수있는 EL표기법으로 데이터를 표현하는 부분은 다음 글에서 작성하겠습니다. # BoardController.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47..

    There is no getter for property named 'password' in 'class com.example.login.vo.UserVO'

    위와같은 오류가 발생하여 확인하여보니 SQL컬럼과 VO클래스 변수명중 password를 VO클래스에는 pw로 다르게 써서 발생한 오류였습니다. DB컬럼명과 VO클래스의 변수명은 꼭 잘 맞춰줘야 할 것 같습니다 (1 )SQL 1 2 3 4 5 6 7 Create table login_user( id varchar(100) primary key, password varchar(20) NOT NULL, name varchar(20) NOT NULL, join_date Timestamp default now() ); Colored by Color Scripter cs (2) VO클래스 package com.example.login.vo; import java.util.Date; public class UserV..

    Spring Boot에서 JSP 연동(사용)하는 방법

    Spring Boot는 Spring Legacy와는 다르게 JSP 파일을 사용하기 위해서는 따로 설정을 해줘야합니다. 그럼 인제 Spring Boot에서 JSP파일을 연동하기 위한 설정에 대해서 설명드리겠습니다. 1. porm.xml파일에서 jasper와jstl 의존성 추가 1 2 3 4 5 6 7 8 9 10 11 org.apache.tomcat.embed tomcat-embed-jasper provided javax.servlet jstl Colored by Color Scripter cs 2. Application 클래스에서 setupViewResolver클래스 생성 후 Prefix,Suffix 경로 지정해준다음 빈 등록 1 2 3 4 5 6 7 8 9 @Bean public InternalReso..

    (5) 지금까지 한 내용 중간정리 그리고 IBoardService인터페이스와 BoardService구현

    Service클래스를 구현하기에 앞서 지금까지의 내용들을 정리해보겠습니다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 1.Mysql을 사용해 board(게시판)테이블 설계 2.게시물 정보를 담을수있는 BoardVO클래스 생성 3. Mybatis를 사용해 DB와 연결해야하는 모든 기능들을 IBoardMapper인터페이스에 메서드로 선언한뒤 BoardMapper.xml에서 모두 구현 4. 게시물 리스트를 사용자에게 나눠서 보여줄수있도록 PageVO클래스와 그 클래스를 상속받은 SearchVO클래스생성 5.사용자에게 게시판 페이징 네비게이션바를 보여주기위한 로직이 구현된 PageCreator클래스 생성 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ ..

    (4 - 2)(게시물 리스트 페이징) 네비게이션 바를 만들기위한 PageCreator클래스 생성

    바로 전에 생성했던 SeachVO클래스와 PageVO클래스로 게시물들을 사용자에게 나눠서 보여줄순있습니다. 하지만 위 사진과 같이 페이지 번호와 이전 다음버튼을 사용자가 누를수있는 네비게이션 바를 개발을 해줘야 페이징을 제대로 만들었다고 볼수있습니다. 이 네비게이션바를 만들기위해선 총 4가지의 정보가 필요합니다 1.beginPage(현재 내 페이지의 시작페이지) 2. endPage(현재 내 페이지의 끝페이지) -> 이 두가지를 알아야 프론트엔드쪽에서 jstl을 활용해 반복문을 돌려서 페이지번호를 사용자에게 보여줄수있다 3.prev(이전 버튼이 있어야하는지의 대한 논리값) 4.next(다음 버튼이 있어야하는지의 대한 논리값) ->이 두가지 논리값을 알아야 프론트엔드쪽에서 jstl을 활용해 if문을 사용해 ..

    (4 - 1)(게시물 리스트 페이징) 검색기능과 페이지 정보가 포함된 클래스들 생성

    개발자가 페이징처리를 해야하는이유 -> 개발자 입장에서는 게시물을 전체 조회해서 사용자에게 한번에 다 보여주는것이 편하겠지만 만약 너무 많은 게시물이 있을때 사용자의 입장에서는 게시물을 보는게 매우 불편할것입니다. 때문에 개발자는 사용자가 검색을 한 상태 또는 안한 상태에서도 게시물들을 페이징처리로 나눠서 사용자가 게시물들을 보기 편리하게 보여줘야합니다. 검색이 포함된 페이징을 구현할려면 사용자에게로부터 총 4개의 파라미터값을 받아와야합니다. 1. 어떤 컬럼으로 검색할것인지에 대한 상태(condition) - 검색 2. 사용자가 검색한 키워드(keyword) -검색 3. 사용자의 현재페이지(page) -페이지 4. 사용자가 한페이지당 보여질 게시물의 갯수(countPerPage) -페이지 위와같은 데이터..

    (3) Mybatis를 사용하기위한 IBoardMapper 인터페이스 생성과 BoardMapper.xml생성

    JDBC와 Mybatis 라이브러리가 모두 다운된 상태이고 mapper scan경로설정으로 mapper주입 가능상태,mysql경로설정이 완료되었다는 가정하에 작성하는 글입니다. (위와 같은 Mybatis 로 DB연결을 하기 위한 Spring 설정부분은 카테고리 Spring설정에 업로드예정 입니다) # IBoardMapper.java ->게시판의 모든 db연결이 필요한 기능들을 먼저 위의 IBoardMapper인터페이스에 선언해준뒤 아래와 같이 IBoardMapper의 메서드들을 BoardMapper.xml에서 기능에 맞는 sql로 모두 구현해줍니다. 위의 SearchVO는 검색기능과 페이지 정보가 포함된 클래스인데 아직 구현하지 않은 상태입니다(이 부분은 다음 글에서 작성하겠습니다) 1 2 3 4 5 6..

    (2) BoardVO클래스 생성

    #BoardVO.java -> 객체를 만들면 DB에 접근하여 데이터를 집어넣거나 데이터를 가져올때 수월하기때문에 위와같이 VO클래스를 만들어 줘야합니다. 변수명은 꼭 sql컬럼명과 똑같이 해주는것이 좋습니다. 그러나 자바랑 sql이랑 띄어쓰기 표기법이 다르기때문에 그 컬럼만빼고 다 똑같이 만들어주도록 하겠습니다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 package com.example.demo.vo; import java.util.Date; public class Bo..

    (1) 게시글 정보를 관리할 Mysql DB 테이블 설계

    1 2 3 4 5 6 7 8 9 CREATE TABLE board ( board_num INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(100) NOT NULL, content TEXT NULL, writer VARCHAR(100) NOT NULL, wr_date TIMESTAMP DEFAULT NOW(), view_cnt INT DEFAULT 0 ); Colored by Color Scripter cs 위와같이 먼저 mysql을 사용해 DB를 설계해주었습니다. 인제 위 컬럼들을 하나씩 설명해 드리겠습니다. board_num -> 게시물번호이다 유일한 값이기 떄문에 기본키 그리고 게시물을 하나 등록할때마다 자동으로 번호가 늘어나야하기 때문에 AUTO_INCREMENT를 ..