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>