Java/Spring

[Spring] 게시판 만들기(Model2)

퓨어맨 2022. 7. 11. 14:48

 

src/main/java -> kr.smhrd.model -> class 파일 생성 (BoardVO.java)

package kr.smhrd.model;

public class BoardVO {
	
	private int idx;
	private String title;
	private String writer;
	private String indate;
	
	
	public int getIdx() {
		return idx;
	}
	public void setIdx(int idx) {
		this.idx = idx;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	public String getIndate() {
		return indate;
	}
	public void setIndate(String indate) {
		this.indate = indate;
	}
	
	
}

 

BoardController.java

package kr.smhrd.web;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;

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

import kr.smhrd.model.BoardVO;

@Controller
public class BoardController {
	
	
	// 메소드 : public String 메소드명 ()
	@RequestMapping("/basic.do")
	public String basic(HttpServletRequest request) {
		
		ArrayList<BoardVO> list = new ArrayList<BoardVO>();
		
		// 게시판 글들을 불러와서 리턴
		
		BoardVO vo1 = new BoardVO();
		vo1.setIdx(1);
		vo1.setWriter("김재우");
		vo1.setTitle("게시판글1");
		vo1.setIndate("2022.07.11");
		
		BoardVO vo2 = new BoardVO();
		vo2.setIdx(2);
		vo2.setWriter("유재석");
		vo2.setTitle("게시판글2");
		vo2.setIndate("2022.07.11");
		
		list.add(vo1);
		list.add(vo2);
		list.add(vo1);
		list.add(vo2);
		
		// forward방식으로 view에 접근
		// : url이 안바뀌고 있기 때문에
		// : 특정 값들을 넘겨주기 위해서는 request 담아서 넘겨주면 된다.
		// : request객체가 필요하면 메소드의 매개변수로 request를 받겠다고 쓰면 된다!
		// ----> Spring framework에서 알아서 관리!
		// ★★★객체 바인딩
		request.setAttribute("list", list);
		
		return "basic";
	}
	
	
	
	
	
}

 

basic.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<!-- bootstrap 사용하기 위해 필요한 라이브러리 3개! -->
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<div class = "container">
		<h2>게시판 만들기</h2>
		<div class="panel panel-default">
		  <div class="panel-heading">SpringMVC 게시판</div>
		  <div class="panel-body">
		  	<table class = "table table-bordered table-hover">
		  		<tr>
		  			<td>번호</td>
		  			<td>제목</td>
		  			<td>작성자</td>
		  			<td>작성일</td>
		  		</tr>
		  		
		  		 <%--  
		  		<c:forEach begin="0" end="3" step="1" var="i">
			  		<tr>
			  		<!-- EL 표현식 -->
			  		<!-- : 객체바인딩 된 데이터를 바로 꺼내올 수 있다. -->
			  			<td>${list.get(i).idx}</td>
			  			<td>${list.get(i).title}</td>
			  			<td>${list.get(i).writer}</td>
			  			<td>${list.get(i).indate}</td>
			  		</tr>
		  		</c:forEach>
                		--%>
		  		
		  		
		  		<c:forEach var = "vo" items="${list}">
			  		<tr>
			  		<!-- EL 표현식 -->
			  		<!-- : 객체바인딩 된 데이터를 바로 꺼내올 수 있다. -->
			  			<td>${vo.idx}</td>
			  			<td>${vo.title}</td>
			  			<td>${vo.writer}</td>
			  			<td>${vo.indate}</td>
			  		</tr>
		  		</c:forEach>
		  		
		  	</table>
		  	</div>
		</div>
	</div>





</body>
</html>