[Spring] 스프링 게시판 예제 (3) - DB연동 + View단 출력 :: 매운코딩
728x90
300x250

https://cceeun.tistory.com/78

 

[Spring] 스프링 게시판 예제 (2) - DB연동 + MVC 설계

(1)편에 이어서 MVC 설계로 게시판예제를 이어서 포스팅하겠다. 1. mappers 폴더 생성 후 BoardMapper.xml 생성하기 src/main/resources의 하위에 mappers 폴더를 생성한다. 폴더명은 root-context.xml에서 작성했..

cceeun.tistory.com

예제(2)에서 Mapper를 이용하여 연동을 한 내용을 View단에서 출력하도록 해보겠다.

 

1. Data Insert 하기

View단에 출력하려면 데이터가 먼저 필요하니 임의로 데이터를 추가하겠다.

Board Sequence create문

CREATE SEQUENCE SEQ_BOARD START WITH 1 INCREMENT BY 1 MAXVALUE 99999999 NOCYCLE;

Board Table Insert문

INSERT INTO BOARD(SEQ,TITLE,WRITER,CONTENT,REGDATE,CNT) VALUES (SEQ_BOARD.NEXTVAL,'안녕하세요','김짱니','첫 게시물 입니다',sysdate,0);
INSERT INTO BOARD(SEQ,TITLE,WRITER,CONTENT,REGDATE,CNT) VALUES (SEQ_BOARD.NEXTVAL,'안농','개구리','개굴개굴','2020-02-16',0);

Select * from board; 를 치면 아래와 같이 데이터가 들어간 것을 확인할 수 있다.

 

2. MainController.java 생성하기

com.firstspring.web.controller 패키지 밑에 MainController.java를 생성해준다.

Controller는 @RequestMapping("ㅇㅇㅇ")을 통해 사용자가 요청한 URL을 파악하고 그 URL과 맞는 Method를 호출하며, Service에서 비즈니스 로직을 처리할 수 있도록 연결해준다.  그렇게 나온 결과는 인자인 model에 저장을하고 .. View 이름을 return하여 결과를 사용자에게 던져준다.

package com.firstspring.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.firstspring.service.BoardService;

public class MainController {
	
	@Autowired
	private BoardService boardService;

	@RequestMapping("test")
	public String boardTest(Model model) {
		model.addAttribute("selectBoardAll",boardService.selectBoardAll());
		return "board/test";
	}
}

Model의 구조는 java.util.map이여서 키-밸류 형태로 구성이 되어있다.

위의 코드에서는 seleceBoardAll이 key가 되는 것.!

 

 

homecotroller.java의 코드까지 합쳐서 MainController로 변경하였다.

완성된 코드 ↓

package com.firstspring.web.controller;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.firstspring.web.service.BoardService;

@Controller
public class MainController {
	
	@Autowired
	private BoardService boardService;

	private static final Logger logger = LoggerFactory.getLogger(MainController.class);
	
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Locale locale, Model model) {
		logger.info("Welcome home! The client locale is {}.", locale);
		
		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
		
		String formattedDate = dateFormat.format(date);
		
		model.addAttribute("serverTime", formattedDate );
		
		return "home"; //view이름
	}
	
	@RequestMapping("test")
	public String boardTest(Model model) {
		model.addAttribute("selectBoardAll",boardService.selectBoardAll());
		return "board/test";
	}
}

 

 

 

3. View 생성하기

src/main/webapp/WEB-INF/views/board 경로에 test.jsp를 생성한다.

코드는 아까 위의 생성했던 Model의 키 값을 작성한다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
${selectBoardAll }
</body>
</html>

 

4. Server Start 후 localhost:8080/web/test로 확인하기

2개의 데이터가 보이는 것을 확인할 수 있다.

 

*참고

<Context docBase="FirstSpring" path="/web" reloadable="true" source="org.eclipse.jst.jee.server:FirstSpring"/></Host>

web.xml에 path를 /web으로 지정했기때문에 requsetmapping의 내용들을 /web 경로뒤에 붙여줘야 제대로 실현되는 것이다... 포트도 web.xml에서 변경할 수 있다.

https://hello-walnuty.tistory.com/16

728x90

+ Recent posts