예제(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에서 변경할 수 있다.
'프로그래밍 > Spring Framework' 카테고리의 다른 글
[Spring] VO와 DTD의 차이란? (Value Object / Data Transfer Object) (0) | 2020.08.14 |
---|---|
[Spring] Mybatis 연동 시 오류 해결방법 (3) | 2020.07.26 |
[Spring] Maven 빌드, 인스톨 시 fatal 오류 해결법 (0) | 2020.07.25 |
[Spring] 스프링 게시판 예제 (2) - DB연동 + MVC 설계 (0) | 2020.07.19 |
[Spring] STS에 Lombok 라이브러리 설치하기 + Lombok 메소드 기능 (0) | 2020.07.19 |