티스토리 뷰

스프링 MVC 애플리케이션의 계층적 구조
웹 애플리케이션의 계층적 구조
계층적 구조

 

계층적 구조의 구현 과정
도서 쇼핑몰의 계층적 공통 모듈 만들기
도서 쇼핑몰 애플리케이션의 계층적 구조

 

 

 

 

 

 

 

 

BookController.java 생성[Controller package 안에 생성]

package com.springmvc.controller;

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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.springmvc.domain.Book;
import com.springmvc.service.BookService;

@Controller
public class BookController {

	@Autowired
	private BookService bookService;
	
	@RequestMapping(value="/book", method=RequestMethod.GET)
	public String requestBookList(Model model)
	{
		List<Book> list = bookService.getAllBookList();
		model.addAttribute("bookList", list);
		return "books";
	}
}

 

 

servlet-context.xml

   <!-- Controller, Service, REquestMapping 등 객체를 여기서 다 관리하기 때문에 *(아스트릭 사용)  -->
   <context:component-scan base-package="com.springmvc.*" />

views>books.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    
    
<!DOCTYPE html>
<html>
<head>
<link href="<c:url value="/resources/css/bootstrap.min.css"/>" rel="stylesheet">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<nav class="navbar navbar-expand navbar-dark bg-dark">
		<div class="container">
			<div class="navbar-header">
				<a class="navbar-brand" href="./home">Home</a>
			</div>
		</div>
	</nav>
	<div class="jumbotron">
		<div class="container">
			<h1 class="display-3">도서 목록</h1>
		</div>
	</div>
	<div class="container">
		<div class="row" align="center">
			<c:forEach items="${bookList}" var="book">
				<div class="col-md-4">
					<h3>${book.name}</h3>
					<p>${book.author}
						<br>${book.publisher} | ${book.releaseDate}
					<p align=left>${fn:substring(book.description,0,100)}...
					<p>${book.unitPrice}원
				</div>
			</c:forEach>
		</div>
	</div>
	<hr>
	<footer>
		<p>&copy; BookMarket</p>
	</footer>
</body>
</html>

 

 

컨트롤러 구현
컨트롤러
컨트롤러
컨트롤러 구현 과정
컨트롤러 정의
@Controller를 이용한 컨트롤러 정의
<context:component-scan> 요소로 컨트롤러 등록

 

package com.springmvc.chap05;

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

@Controller
public class Example01Controller {
	
	@RequestMapping(value="/exam01", method=RequestMethod.GET)
	public void requestMethod()
	{
		System.out.println("@Controller 예제입니다.");
	}
}
package com.springmvc.chap05;

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

@Controller
public class Example02Controller {

	
	@RequestMapping(value="/exam02", method=RequestMethod.GET)
	public void requestMethod()
	{
		System.out.println("exam2입니다.");
	}
}

@RequestMapping을 이용한 요청 매핑 경로 설정
컨트롤러에 @RequestMapping 적용

 

BookController.java 수정.

package com.springmvc.controller;


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.RequestMapping;

import com.springmvc.domain.Book;
import com.springmvc.service.BookService;

@Controller
@RequestMapping("books") //추가
public class BookController {
	//autowired 자동으로 변수에 대입을 해준다. 라고 생각
	@Autowired
	private BookService bookService;
	
	//매핑에서 value값을 찾아서 반환해준다.
	@RequestMapping //수정

	public String requestBookList(Model model)
	{
		List<Book> list = bookService.getAllBookList();
		model.addAttribute("bookList", list);
		return "books";
	}
	@RequestMapping("/all") //수정
	
	public String requestAllBooks(Model model)
	{
		List<Book> list = bookService.getAllBookList();
		model.addAttribute("bookList", list);
		return "books";
	}
}
메서드 수준의 @RequestMapping 단순화

 

porm.xml 에서 버전을 변경 후

4.1.1 에서 변경.

BookControler.java 변경

package com.springmvc.controller;


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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import com.springmvc.domain.Book;
import com.springmvc.service.BookService;

@Controller
@RequestMapping("books") //추가
public class BookController {
	//autowired 자동으로 변수에 대입을 해준다. 라고 생각
	@Autowired
	private BookService bookService;
	
	//매핑에서 value값을 찾아서 반환해준다.
	@GetMapping //수정
	public String requestBookList(Model model)
	{
		List<Book> list = bookService.getAllBookList();
		model.addAttribute("bookList", list);
		return "books";
	}
	@GetMapping("/all") //수정
	public String requestAllBooks(Model model)
	{
		List<Book> list = bookService.getAllBookList();
		model.addAttribute("bookList", list);
		return "books";
	}
}

 

'정리 노트 > Spring' 카테고리의 다른 글

Spring Chapter7 [15-5]  (0) 2024.01.19
Spring Chapter5~Chapter6 [15-4]  (0) 2024.01.18
Spring Chapter3 [15-2]  (0) 2024.01.16
Spring Chapter1~Chapter2 & 개발 환경 설정[15-1]  (0) 2024.01.15
Spring 환경 구축[14-5]  (0) 2024.01.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함