ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • bank app7 - 화면 구현(2)
    spring boot 2023. 4. 17. 15:53

    학습목표

     

    학습목표
    1. UserController 생성
    2. 회원 가입, 로그인 화면 구현하기
    3. AccountController 생성
    4. 계좌목록,출금,입금,계좌생성,계좌상세보기 페지이 만들기


    UserController 파일 생성

    package com.tenco.bank.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import com.tenco.bank.dto.SignInFormDto;
    import com.tenco.bank.dto.SignUpFormDto;
    
    @Controller
    @RequestMapping("/user")
    public class UserController {
    	
    	// http://localhost:8080/user/sign-up
    	@GetMapping("/sign-up")
    	public String signUp() {
    		// prefix 
    		// subfix 
    		return "/user/signUp";
    	}
    	
    
    	/**
    	 * 회원 가입 처리 
    	 * @param signUpFormDto
    	 * @return 리다이렉트 로그인 페이지
    	 */
    	@PostMapping("/sign-up")
    	public String signUpProc(SignUpFormDto signUpFormDto) {
    		
    		return "redirect:/user/sign-in";
    	}
    	
    	/**
    	 * 로그인 폼
    	 * @return 로그인 페이지 
    	 */
    	@GetMapping("/sign-in")
    	public String signIn() {
    		
    		return "/user/signIn";
    	}
    	
    	/**
    	 * 로그인 처리 
    	 * @param signInFormDto
    	 * @return 메인 페이지 이동 (수정 예정)
    	 */
    	@PostMapping("/sign-in")
    	public String signInProc(SignInFormDto signInFormDto) {
    		
    		// todo 변경 예정 
    		return "/test/main";
    	}
    	
    
    }

     

    회원 가입 화면 구현 (signUp.jsp)

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@ include file="/WEB-INF/view/layout/header.jsp"%>
    
    <!-- todo main 영역으로 지정 예정  -->
    <div class="col-sm-8">
    	<h2>회원 가입</h2>
    	<h5>어서오세요 환영합니다</h5>
    	<div class="bg-light p-md-5 h-75">
    		<form action="/user/sign-up" method="post">
    			<div class="form-group">
    				<label for="username">User name:</label>
    				<input type="text" class="form-control" placeholder="Enter username" id="username" name="username">
    			</div>
    			<div class="form-group">
    				<label for="password">Password:</label>
    				<input type="password" class="form-control" placeholder="Enter password" id="password" name="password">
    			</div>
    			<div class="form-group">
    				<label for="fullname">Fullname:</label>
    				<input type="text" class="form-control" placeholder="Enter fullname" id="fullname" name="fullname">
    			</div>
    			<button type="submit" class="btn btn-primary">Submit</button>
    		</form>
    	</div>
    	<br>
    </div>
    
    <%@ include file="/WEB-INF/view/layout/footer.jsp"%>

     

    로그인 화면 구현 처리 (signIn.jsp)

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@ include file="/WEB-INF/view/layout/header.jsp"%>
    
    <div class="col-sm-8">
    	<h2>로그인 </h2>
    	<h5>어서오세요 환영합니다</h5>
    	<div class="bg-light p-md-5 h-75">
    		<form action="/user/sign-in" method="post">
    			<div class="form-group">
    				<label for="username">User name:</label>
    				<input type="text" class="form-control" placeholder="Enter username" id="username" name="username">
    			</div>
    			<div class="form-group">
    				<label for="password">Password:</label>
    				<input type="password" class="form-control" placeholder="Enter password" id="password" name="password">
    			</div>
    			<button type="submit" class="btn btn-primary">Submit</button>
    		</form>
    	</div>
    	<br>
    </div>
    
    <%@ include file="/WEB-INF/view/layout/footer.jsp"%>

     

    AccountController 파일 생성

    package com.tenco.bank.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping("/account")
    public class AccountController {
    
    	/**
    	 * 계좌 목록 페이지 
    	 * @return 목록 페이지 이동
    	 */
    	@GetMapping({"/list", "/"})
    	public String list() {
    		return "/account/list";
    	}
    	
    	// 출금 페이지 
    	@GetMapping("/withdraw")
    	public String withdraw() {
    		return "/account/withdrawForm";
    	}
    	
    	
    	// 입금 페이지
    	@GetMapping("/deposit")
    	public String deposit() {
    		return "/account/depositForm";
    	}
    	
    	// 이체 페이지 
    	@GetMapping("/transfer")
    	public String transfer() {
    		return "/account/transferForm";
    	}
    	
    	// 계좌 생성 페이지 
    	@GetMapping("/save")
    	public String save() {
    		return "/account/saveForm";
    	}
    	
    	// 계좌 상세 보기 페이지 
    	@GetMapping("/detail")
    	public String detail() {
    		return "";
    	}
    	
    	
    }

     

    계좌 목록 페이지 구성 (list.jsp)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ include file="/WEB-INF/view/layout/header.jsp"%>
    
    <div class="col-sm-8">
    	<h2>나의 계좌 목록 </h2>
    	<h5>어서오세요 환영합니다</h5>
    	<div class="bg-light p-md-5 h-75">
    		<table class="table">
    			<thead>
    				<tr>
    					<th>계좌 번호</th>
    					<th>잔액</th>
    				</tr>
    			</thead>
    			<tbody>
    				<tr>
    					<td>1111</td>
    					<td>500원</td>
    				</tr>
    				<tr>
    					<td>2222</td>
    					<td>200원</td>
    				</tr>
    			</tbody>
    		</table>
    	</div>
    	<br>
    </div>
    
    <%@ include file="/WEB-INF/view/layout/footer.jsp"%>

     

    출금 계좌 화면 구현 (withdraw.jsp)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ include file="/WEB-INF/view/layout/header.jsp"%>
    
    <div class="col-sm-8">
    	<h2>출금페이지(인증)</h2>
    	<h5>어서오세요 환영합니다</h5>
    		<div class="bg-light p-md-5 h-75">
    		<form action="#" method="post">
    			<div class="form-group">
    				<label for="amount">출금 금액:</label>
    				<input type="text" class="form-control" placeholder="출금금액을 입력하시오" id="amount" name="amount">
    			</div>
    			<div class="form-group">
    				<label for="wAccountNumber">출금계좌번호:</label>
    				<input type="text" class="form-control" placeholder="출금계좌번호" id="wAccountNumber" name="wAccountNumber">
    			</div>
    			<div class="form-group">
    				<label for="wAccountPassword">출금계좌비밀번호:</label>
    				<input type="password" class="form-control" placeholder="출금계좌비밀번호" id="wAccountPassword" name="wAccountPassword">
    			</div>
    			
    			<button type="submit" class="btn btn-primary">출금</button>
    		</form>
    	</div>
    	<br>
    </div>
    
    <%@ include file="/WEB-INF/view/layout/footer.jsp"%>

     

    입금 계좌 화면 구성(despositForm.jsp)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ include file="/WEB-INF/view/layout/header.jsp"%>
    
    <div class="col-sm-8">
    	<h2>계좌 생성 페이지(인증)</h2>
    	<h5>어서오세요 환영합니다</h5>
    		<div class="bg-light p-md-5 h-75">
    		<form action="#" method="post">
    			<div class="form-group">
    				<label for="number">계좌 번호:</label>
    				<input type="text" class="form-control" placeholder="생성 계좌 번호 입력" id="number" name="number">
    			</div>
    			<div class="form-group">
    				<label for="password">계좌 비밀번호:</label>
    				<input type="password" class="form-control" placeholder="계좌 비밀번호 입력" id="password" name="password">
    			</div>
    			<div class="form-group">
    				<label for="balance">입금 금액:</label>
    				<input type="text" class="form-control" placeholder="출금계좌비밀번호" id="balance" name="balance">
    			</div>
    			
    			<button type="submit" class="btn btn-primary">계좌 생성</button>
    		</form>
    	</div>
    	<br>
    </div>
    
    <%@ include file="/WEB-INF/view/layout/footer.jsp"%>

     

    이체 계좌 화면 구성 (transferForm.jsp)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ include file="/WEB-INF/view/layout/header.jsp"%>
    
    <div class="col-sm-8">
    	<h2>이체페이지(인증)</h2>
    	<h5>어서오세요 환영합니다</h5>
    		<div class="bg-light p-md-5 h-75">
    		<form action="#" method="post">
    			<div class="form-group">
    				<label for="amount">이체 금액:</label>
    				<input type="text" class="form-control" placeholder="이체금액을 입력하시오" id="amount" name="amount">
    			</div>
    			<div class="form-group">
    				<label for="wAccountNumber">출금계좌번호:</label>
    				<input type="text" class="form-control" placeholder="출금계좌번호" id="wAccountNumber" name="wAccountNumber">
    			</div>
    			
    			<div class="form-group">
    				<label for="dAccountNumber">이체계좌번호:</label>
    				<input type="text" class="form-control" placeholder="이체계좌번호" id="dAccountNumber" name="dAccountNumber">
    			</div>
    			<div class="form-group">
    				<label for="wAccountPassword">출금계좌비밀번호:</label>
    				<input type="password" class="form-control" placeholder="출금계좌비밀번호" id="wAccountPassword" name="wAccountPassword">
    			</div>
    			
    			<button type="submit" class="btn btn-primary">이체하기</button>
    		</form>
    	</div>
    	<br>
    </div>
    
    <%@ include file="/WEB-INF/view/layout/footer.jsp"%>

     

     

     

    header.jsp 주소 연결

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <html lang="en">
    <head>
    <title>My Bank</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet"
    	href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
    <script
    	src="https://cdn.jsdelivr.net/npm/jquery@3.6.4/dist/jquery.slim.min.js"></script>
    <script
    	src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
    <script
    	src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
    <link rel="stylesheet" href="/css/styles.css">
    <style>
    
    </style>
    </head>
    <body>
    
    	<div class="jumbotron text-center banner--img" style="margin-bottom: 0">
    		<h1 class="m--title">My Bank</h1>
    		<img alt="sample" src="https://picsum.photos/300/200">
    	</div>
    
    	<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
    		<a class="navbar-brand" href="#">MENU</a>
    		<button class="navbar-toggler" type="button" data-toggle="collapse"
    			data-target="#collapsibleNavbar">
    			<span class="navbar-toggler-icon"></span>
    		</button>
    		<div class="collapse navbar-collapse" id="collapsibleNavbar">
    			<ul class="navbar-nav">
    				<li class="nav-item"><a class="nav-link" href="#">Home</a></li>
    				<li class="nav-item"><a class="nav-link" href="/user/sign-in">로그인</a></li>
    				<li class="nav-item"><a class="nav-link" href="/user/sign-up">회원가입</a></li>
    			</ul>
    		</div>
    	</nav>
    
    	<div class="container" style="margin-top: 30px">
    		<div class="row">
    			<div class="col-sm-4">
    				<h2>About Me</h2>
    				<h5>Photo of me:</h5>
    				<div class="m--profile"></div>
    				<p style="padding: 8px 0">자라나는 코린이에 은행 관리 시스템 입니다</p>
    				<h3>Some Links</h3>
    				<p>Lorem ipsum dolor sit ame.</p>
    				<ul class="nav nav-pills flex-column">
    					<li class="nav-item"><a class="nav-link" href="/account/save">계좌생성</a></li>
    					<li class="nav-item"><a class="nav-link"  href="/account/list">계좌목록</a></li>
    					<li class="nav-item"><a class="nav-link" href="/account/withdraw">출금</a></li>
    					<li class="nav-item"><a class="nav-link" href="/account/deposit">입금</a></li>
    					<li class="nav-item"><a class="nav-link" href="/account/transfer">이체</a></li>
    					<li class="nav-item"><a class="nav-link disabled" href="#">My Info</a>
    					</li>
    				</ul>
    				<hr class="d-sm-none">
    			</div>

    'spring boot' 카테고리의 다른 글

    bank app 9 - 회원가입(트랜잭션처리)  (0) 2023.04.18
    bankapp 8 - Exception Handler  (0) 2023.04.18
    bank app6 - 화면구현(1)  (0) 2023.04.17
    bank app5 - MyBatis 설정  (0) 2023.04.17
    bank app4 - h2 db 초기 값 설정  (0) 2023.04.14
Designed by Tistory.