스프링 기초(인강 보충)_6

bitna's study note·2022년 7월 10일

스프링

목록 보기
16/54

7월12일

1.목록화면 처리
list.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="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<%@include file="../includes/header.jsp"%>    

            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header">Tables</h1>
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- /.row -->
            <div class="row">
                <div class="col-lg-12">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            DataTables Advanced Tables
                        </div>
                        <!-- /.panel-heading -->
                        <div class="panel-body">
                            <table width="100%" class="table table-striped table-bordered table-hover">
                                <thead>
                                    <tr>
                                        <th>bno</th>
                                        <th>Title</th>
                                        <th>Writer</th>
                                        <th>RegDate</th>
                                        <th>UpdateDate</th>
                                    </tr>
                                </thead>
                                <tbody>
                                <c:forEach items="${list}" var="board">
                                    <tr class="odd gradeX">
                                        <td>${board.bno}</td>
                                        <td>${board.title}</td>
                                        <td>${board.writer}</td>
                                        <td><fmt:formatDate pattern="yyyy-MM-dd" value="${board.regdate}"/></td>
                                        <td><fmt:formatDate pattern="yyyy-MM-dd" value="${board.updatedate}"/></td>
                                    </tr>
                                </c:forEach>   
                                </tbody>
                            </table>
                 
                        </div>
                        <!-- /.panel-body -->
                    </div>
                    <!-- /.panel -->
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- /.row -->
            
   	
            
<%@include file="../includes/footer.jsp"%> 

2.등록화면 처리
get방식으로 게시물 등록화면을 제공하고,
post방식으로 실제 게시물을 등록하고 처리한다.
이후 list.jsp로 이동

(1)BoardController 에 get방식으로 등록화면으로 갈수있게 url을 추가해 줘야함
사용자가 입력할수 있는곳으로 이동하는건 get방식 이다!!!

@GetMapping("/register")
public void registerGET() {}

(2)get방식 으로 register.jsp파일을 찾아가게 되고,
아래 register.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="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<%@include file="../includes/header.jsp"%>    

            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header">Board Register</h1>
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- /.row -->
            <div class="row">
                <div class="col-lg-12">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            Board Register
                        </div>
                        <!-- /.panel-heading -->
                        <div class="panel-body">
                        
						<form role="form"  action="/board/register" method="post">
							<div class="form-group" name="title">
	                            <label>title</label>
	                            <input class="form-control" name="title">
	                        </div>                 
	                        
	                        <div class="form-group" name="content">
	                            <label>content</label>
	                            <textarea rows="5" cols="50" name="content" class="form-control"></textarea>
	                        </div>
	                        
	                        <div class="form-group" name="writer">
	                            <label>writer</label>
	                            <input class="form-control" name="writer">
	                        </div>
	                        
	                            <button type="submit" class="btn btn-default">Submit Button</button>
                                <button type="reset" class="btn btn-default">Reset Button</button>
						
						</form>   
                 
                        </div>
                        <!-- /.panel-body -->
                    </div>
                    <!-- /.panel -->
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- /.row -->
            
   	
            
<%@include file="../includes/footer.jsp"%> 

(3)위에 register.jsp 로 들어가 입력하고 submit을 누르게 되면,
post형식의 register.jsp로 들어가서 처리하고 이동함

package com.keduit.controller;

@Controller //스프링의 Controller빈으로 인식할수 있게함.
@RequiredArgsConstructor //해당 어노테이션은 final로 선언한 변수를 찾아서 주입해줌
@RequestMapping("/board/*")
@Log4j

//아래 모든코드가 테스트코드까지 성공했으면, service에서 Controller 까지 넘어가는 거는 문제없다는게 유추됨
public class BoardController {
	
	private final BoardService service;
	
	
	@GetMapping("/register")
	public void registerGET() {
		
	}
	
	@PostMapping("/register")
	public String register(BoardVO board, RedirectAttributes rttr) {//redirect를 쓸거라 RedirectAttributes 파라미터를 넣어줌
		log.info("register..........");	
		log.info("board====>"+board);
		Long bno=service.selectInsertKey(board);
		log.info("bno:"+bno);
		
		//list 페이지로 이동할때 데이터를 전달해주고 싶을때 addFlashAttribute와 addAttribute가 있음
		//addFlashAttribute는 일회용으로 한번쓰고 없어짐,
		//addAttribute는 링크랑 연결이 되어 return "/redirect:/board/list" 이부분에 따라붙어서 같이감
		rttr.addFlashAttribute("result",bno); 
		
		return "redirect:/board/list";
	}

}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글