Spring34 [Spring] 게시판 프로젝트12 - 게시물 수정, 삭제 게시물 등록 과정에서 우리는 처음 등록페이지를 들어갈 때는 get, 입력폼을 작성하여 등록 버튼을 눌렀을 때는 post방식을 사용하였다. 아래의 컨트롤러 코드를 보면 확인할 수 있다. (기존에 작성했던 코드임) BoardController.java //게시물 등록 화면 @GetMapping("/register") public void registerGET() { } //실제로 게시물을 등록하는 경우 @PostMapping("/register") // 글을 등록하는 경우에는 get방식이 아니라 post방식을 사용한다. public String register(BoardVO board, RedirectAttributes rttr) { // RedirectAttributes : log.info("[CONTRO.. 2021. 7. 14. [Spring] 게시판 프로젝트11 - detail페이지로 이동(+history.state제어) 리스트에서 특정 게시물을 선택해서 세부 내용을 조회하고 싶은 경우에는 get방식을 사용한다. get방식으로 bno(pk)값을 넘겨주기 위해서는 아래의 코드를 수정해야한다. 해당 코드는 단순히 bno값을 조회하는 부분이다. bno부분을 눌렀을 때 디테일 페이지로 이동하도록 a태그를 붙여준다. 코드를 보면 부분은 결과적으로 숫자값이기 때문에 get방식으로 붙여주었다. (url의 get은 페이지 이름이다.) 우린 이전 실습에서 컨트롤러에 /get을 정의해주었다. 미리 작업을 해두었기 때문에 a태그로 연결만 해도 디테일 페이지로 이동이 가능하다. @GetMapping("/get") public void get(@RequestParam("bno") Long bno, Model model) { model.addAt.. 2021. 7. 13. [Spring] 게시판 프로젝트10 - Redirect 처리 (addFlashAttribute) Redirect : 등록 과정에서 post방식으로 데이터가 처리되는 과정 우리가 일반적으로 사용하는 웹페이지(게시판)에서 동작하는 방식은 대부분 아래와 동일하다. 게시물 등록 페이지에서 form을 작성하여 전송버튼을 누르면 입력된 항목들이 BoardController에 전달된다. 컨트롤러는 /boards/list로 Redirect시킨다. 브라우저가 다시 컨트롤러에 /list를 호출하면 컨트롤러는 /list에 매핑된 메소드가 정의한 내용대로 목록 페이지를 브라우저에 띄운다. 이 때 우리가 게시물을 등록하고 전송버튼을 누르면 목록페이지로 자동으로 이동하는 것이 Redirect이다. 물론 이 Redirect는 등록 뿐만아니라 수정, 삭제의 경우에도 사용한다. redirect시에 데이터를 전달할 수 있는 방법으.. 2021. 7. 13. [Spring] JPA CRUD Create / Update - Repository 단계에서 정의 메인함수 코드 package com.sparta.week02; import com.sparta.week02.domain.Course; import com.sparta.week02.domain.CourseRepository; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.sp.. 2021. 7. 13. [Spring] JPA 기초 JPA SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기 JPA가 필요한 이유 1. SQL문 일일이 쓰고 있다가 시간 다 감 2. 기존에 mysql쓰다가 oracle을 사용하려는 경우 sql문법에 대한 검토를 하기 굉장히 번거로움 예시 아래의 JPA 사용 코드를 SQL문으로 자동으로 번역해줌 repository.save(new Customer("Taeong",23)); JPA 사용 전 알아야 할 개념 1. Domain(Entity) = table 테이블이랑 1:1 대응됨 2. Repository = sql SQL의 역할을 함 repository에 써 있는 코드가 JPA코드를 사용하는 것과 같음 JPA 사용하기 현재의 디렉토리 구조는 다음과 같다. course테이블을 생성하.. 2021. 7. 12. [Spring] 게시판 프로젝트9 - 게시물 등록(+한글 깨짐 필터 설정) 📌 게시물 등록을 위한 작업 1. GET방식으로 게시물 등록 화면 제공 2. POST방식으로 실제 게시물 등록 처리 3. 이후 목록 페이지로 이동(Redirect) 이전 게시물에서 등록하는 경우 post mapping을 사용한 컨트롤러를 이용했었다. 그러나 실제 웹페이지로 게시물을 등록하는 경우에는 게시물 등록을 위한 페이지가 필요하다. 그러므로 기존의 post방식과 다르게 등록 화면을 보여줄 get mapping 메소드를 추가해야 한다. //게시물 등록 화면(추가된 부분) @GetMapping("/register") public void registerGET() { } //실제로 게시물을 등록하는 경우(원래 있던 코드) @PostMapping("/register") // 글을 등록하는 경우에는 get방.. 2021. 7. 12. [Spring] 게시판 프로젝트8 - JSTL을 이용한 게시물 목록 조회 실습 템플릿을 따라서 사용하는 경우라면 jQuery의 버전을 변경해주는 것이 좋다. (템플릿의 jQuery버전은 낮음) 더보기 아래의 링크를 타고 접속해서 웹 CDN으로 추가해준다. 실습에서는 jQuery 3.x 버전의 minified를 사용하였다. jQuery CDN The integrity and crossorigin attributes are used for Subresource Integrity (SRI) checking. This allows browsers to ensure that resources hosted on third-party servers have not been tampered with. Use of SRI is recommended as a best-practice, when.. 2021. 7. 12. [Spring] 게시판 프로젝트7 - 화면 처리(정적파일 적용, include지시자) 화면처리는 bootstrap을 이용하여 프론트 개발 시간을 단축한다. https://getbootstrap.com/ Bootstrap The most popular HTML, CSS, and JS library in the world. getbootstrap.com 원하는 템플릿을 다운받아서 진행해도 무관함! 교재에서는 아래의 템플릿을 사용했기 때문에 실습에서도 이 템플릿으로 진행한다. 이 위치에 다음 파일들을 붙여넣는다. 📌 스프링MVC의 JSP를 처리하는 설정은 servlet-context.xml에 작성되어있다. 화면 설정은 ViewResolver라는 객체를 통해서 이루어지는데, '/WEB-INF/views'폴더를 이용하는 것을 볼 수 있다. 정적 파일 적용하기 /WEB-INF/views/에 boar.. 2021. 7. 6. RestController 생성하기 실습은 intelliJ로 진행함 아래 포스팅에 @RestController에 대한 더욱 자세한 설명이 있으니 참고! https://doctorson0309.tistory.com/664 [Spring] 스프링 @RestController란? 그리고 사용방법 안녕하세요. 플랫폼공작소입니다. 오늘은 스프링어노테이션 중 @RestController라는 것에 대해서 알아보겠습니다. 1. @RestController란? - 스프링프레임워크 4.x 버전 이상부터 사용가능한 어노테이션 doctorson0309.tistory.com @RestController = @Controller + @ResponseBody @RestController는 문자열과 JSON등을 전송할 수 있게 한다. 테스트 코드를 확인하면 @Rest.. 2021. 7. 5. [Spring] 게시판 프로젝트6 - Presentation계층 구현 Presentation계층에서 Controller를 작성하기 전에 url설계부터 진행함 리스트 조회(List) 처리 과정 1. BoardController.java 생성 package com.taeong.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import com.taeong.service.BoardService; import lombok.AllArgsCo.. 2021. 7. 4. [Spring] 게시판 프로젝트5 - Business 계층 구현 Business계층 - 고객의 요구사항을 반영하는 계층 - 업무의 로직을 단위로 설계함 (트랜잭션 단위로 반영) - 여러개의 Mapper나 DAO를 사용하는 경우가 존재함 - xxxService의 형태로 작성 예를 들어 Persistence tier(영속 계층)에서 '상품'과 '회원'을 VO로 만들어서 관리를 한다면 이를 동시에 이용해야하는 '구매 서비스'는 Business tier(서비스 계층)으로 분류하게 된다. 서비스 패키지 설정 service패키지 먼저 생성해주고 인터페이스(BoardService.java)와 클래스(BoardServiceImpl.java)를 추가한다. (참고로 인터페이스인 경우에 아이콘 위에 I 표시가 붙어있음) 서비스 계층 구현 1. BoardService.java 인터페이스에.. 2021. 7. 4. [Spring] 게시판 프로젝트4 - Persistence 계층 구현 (insert,delete,update) 게시물 등록 - insert 1. BoardMapper.java에 메소드 추가 package com.taeong.mapper; import java.util.List; import com.taeong.domain.BoardVO; public interface BoardMapper { public List getList(); // 아래 insert메소드들 추가 public void insert(BoardVO board); public void insertSelectKey(BoardVO board); } insert() : 단순히 시퀀스의 다음 값을 구해서 insert할 때 사용 insertSelectKey() : @SelectKey라는 MyBatis의 어노테이션을 사용 @SelectKey는 주로 PK값을 .. 2021. 7. 3. [Spring] 게시판 프로젝트3 - Persistence 계층 구현 (select) 1. boardpro 유저에 접속하여 tbl_board 테이블 생성 작업을 진행 create sequence seq_board; create table tbl_board( bno number(10,0), title varchar2(200) not null, content varchar2(2000) not null, writer varchar2(50) not null, regdate date default sysdate, updatedate date default sysdate ); alter table tbl_board add constraint pk_board primary key(bno); seq_board : 일련번호를 위한 sequence tbl_board : 게시물 저장을 위한 테이블 pk : .. 2021. 7. 2. Log4j import에러 1. Log4j import 안될 때는 좌측에 Maven Dependencies에서 Log4j 불빛이 꺼져있는지 확인해봄 2. pom.xml에 가서 저 한 줄 빼버리고 저장하면 log4j 불빛이 다시 켜짐 짠⭐ 사실 관련 글들 구글에 많긴 한데 난 너무 자주 겪어가지고 한 번 써봄 2021. 7. 2. JUnit import 안되는 경우 라이브러리를 제대로 추가 안한 것 1. java buile path > addLibrary > JUnit 추가 2. pom.xml에서 JUnit 추가 junit junit 4.12 test 2021. 7. 2. 이전 1 2 3 다음