package com.sp.app.blog;

import java.util.List;

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

@Controller("blog.blogController")
@RequestMapping("/blog/*")
public class BlogController {
	@Autowired
	private BlogService service;
	
	@RequestMapping(value = "main", method = RequestMethod.GET)
	public String main(Model model) {
		List<Blog> list = service.listBlog();
		
		model.addAttribute("listBlog", list);
		
		return "blog/main";
	}

/*
 	@PathVariable 애노테이션을 이용한 URI 템플릿
 	- URI 템플릿을 이용하여 REST 방식의 URL 매칭처리를 위한 애노테이션
 	- 블로그, 카페 등을 만들 때 유용
 	- 방법
 	  @RequestMapping 애노테이션의 값으로 {템플릿변수}를 사용
 	  @PathVariable를 이용하여  {템플릿변수}와 동일한 이름을 갖는 파라미터를 추가한다.
 		
 */
	@RequestMapping(value = "{blogIdx}/home")
	public String execute(
			@PathVariable long blogIdx,
			Model model) throws Exception {
		
		Blog dto = null;
		for(Blog vo : service.listBlog()) {
			if(vo.getBlogIdx() == blogIdx) {
				dto = vo;
				break;
			}
		}
		
		model.addAttribute("dto", dto);
		
		return "blog/home";
	}
	
}
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">

<style type="text/css">
* {
	margin: 0; padding: 0;
}

body {
	font-size: 13px; font-family: 맑은 고딕, 돋움;
}

div h3 {
	padding: 5px 5px;
}

div ul>li {
	list-style: none;
	padding: 5px 5px;
}

</style>

</head>
<body>

<div style="width: 500px; margin: 30px auto;">
	<h3> 블로그 리스트 </h3>
	
	<ul>
		<c:forEach var="dto" items="${listBlog}">
			<li>
				<a href="${pageContext.request.contextPath}/blog/${dto.blogIdx}/home">${dto.blogName}</a>
			</li>
		</c:forEach>
	</ul>
	
</div>

</body>
</html>​
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

<h3>${dto.nickName} 블로그</h3>

<p> 블로그 주제 : ${dto.blogName} </p>
<p> ${dto.nickName} 블로그입니다. 방문하셨으면 방명록을 써주세요. </p>
<p>
  <a href="${pageContext.request.contextPath}/blog/main">돌아가기</a>
</p>

</body>
</html>

+ Recent posts