본문 바로가기
카테고리 없음

[Spring] 게시판 만들기(3) - VO 만들기 / 게시판 구조 생성

by 죠졍니 2022. 10. 19.
728x90
반응형
SMALL

 


vo만들기 - Board 게시판 구조

 

1. BoardController에 List 추가 

 

 

 

단, 이를 추가할려면 package필요

 

 

 

 

 

2. Board 클래스 생성

(1)src/main/java 폴더에 kr.smhrd.entity 패키지 생성

 

 

(2) entity 패키지에 Board.class파일 생성

 

 

 

 

타입을 정할 때, int보다는 long을 권장함

 

 

(3) 게시판에 작성할 번호, 제목, 내용, 작성자, 작성일, 조회수 생성

 

 

(4) Getter / Setter / toString 생성

 

마우스 오른쪽버튼 -> Source -> generate getter/setter

                                                -> generate toString()

 

 

 

 

(5) default생성자 

-> 만들어놓지 않으면 이후 작업시 에러 발생

 

 

<최종 Board.java 코드>

package kr.smhrd.entity;

import java.util.Date;

//게시판(Object) - > 번호, 제목, 내용, 작성자, 작성일, 조회수 ,,,, 
public class Board {
	private Long idx;
	private String title;
	private String content;
	private String writer;
	private Date indate; //Data -> Spring
	private Long count;
	
	public Board() {};
	
	
	public Long getIdx() {
		return idx;
	}
	public void setIdx(Long idx) {
		this.idx = idx;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	public Date getIndate() {
		return indate;
	}
	public void setIndate(Date indate) {
		this.indate = indate;
	}
	public Long getCount() {
		return count;
	}
	public void setCount(Long count) {
		this.count = count;
	}
	
	
	//toString()
	@Override
	public String toString() {
		return "Board [idx=" + idx + ", title=" + title + ", content=" + content + ", writer=" + writer + ", indate="
				+ indate + ", count=" + count + "]";
	}
	
	
	
}

 

 

!!!!!!!!!!!!!!!!!!!!! import 할 때, 꼭 sql 아니고 util 로  import 자동완성시키기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

 

 

 

 

3. BoardController 수정하기

 

(1) 기존에 만들어놓은 list메소드에서 객체바인딩하기

 

(2) list.add로 게시판 출력하기

 

 

 

<최종 BoardController.java 코드>

package kr.smhrd.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import java.util.ArrayList;
import java.util.Date;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import kr.smhrd.entity.Board;

@Controller
public class BoardController { //POJO

	//메서드
	//리스트 요청(list.do)을 처리하는 메서드 만들기
	@RequestMapping("/list.do")
	public String list(HttpServletRequest request) {
		
		//데이터베이스에서 게시판 리스트를 가져오기
		List<Board> list = new ArrayList<Board>();
		Board b = new Board();
		b.setIdx(1L);
		b.setTitle("스프링게시판");
		b.setWriter("관리자");
		b.setIndate(new Date());
		b.setCount(0L);
		
		list.add(b);
		list.add(b);
		list.add(b);
		
		//객체바인딩(HttpServletRequest, HttpSession)
		request.setAttribute("list", list); //list(번지) -> ArrayList
		
		
		return  "board/list"; //redirect, forward(JSP)
	}
	
	
}

 

 

 

 

4. list.jsp 수정하기

 

- thead부분 foreach문으로 출력하기

 

 

 < list.jsp 코드>

<%@page import="kr.smhrd.entity.Board"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" 
	pageEncoding="UTF-8"%>
<%
	List<Board> list = (List<Board>)request.getAttribute("list");
 %>
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
  <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
 
<div class="container">
  <h2>Spring MVC01</h2>
  <div class="card">
    <div class="card-header">BOARD</div>
    <div class="card-body">
    	<table class = "table table-bordered table-hover">
    		<thead>
    			<th>번호</th>
    			<th>제목</th>
    			<th>작성자</th>
    			<th>작성일</th>
    			<th>조회수</th>
    		</thead>
    		<tbody>
    		
    		<%for(Board vo : list){%>
    		
    			<tr>
    				<td><%=vo.getIdx() %></td>
    				<td><%=vo.getTitle()%></td>
    				<td><%=vo.getWriter()%></td>
    				<td><%=vo.getIndate() %></td>
    				<td><%=vo.getCount() %></td>
    				
    			</tr>
    			<% }%>
    			
    		</tbody>
    	</table>
    </div> 
    <div class="card-footer">AI.BigData 취업역량강화_조정은</div>
  </div>
</div>

</body>
</html>

 

 

 

 

잘 나옵니댱

 

 

 

 

 

 

 

 

728x90
반응형
LIST