req_quiz01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<hr>
<%--
맵핑
1.RequestController에 현재 파일의 화면 처리를 하는 메서드를 생성.
2.폼 전송을 처리하는 메서드 생성(login맵핑 - POST만 허용)
3.아이디가 abc123, 비밀번호가 xxx123이라면 req_quiz01_ok.jsp 로 화면 이동
4.아니라면 req_quiz01_no.jsp로 화면이동
--%>
<form action="login" method="post">
ID:<input type="text" name="id"><br>
PW:<input type="password" name="pw"><br>
<input type="submit" value="로그인" >
</form>
</body>
</html>
req_quiz01_ok에는 <h2>로그인성공..</h2>가, req_quiz01_no에는 <h2>아이디 비밀번호를 확인하세요</h2>가 있다.
RequestController.java
package com.simple.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/request") //메서드 앞에 공통으로 들어가는 요청경로
public class RequestController {
//실습
@RequestMapping("/req_quiz01")
public void quiz01() {
}
//폼 요청
@PostMapping("/login")
public String login(@RequestParam(value="id", required = false,defaultValue = "")String id,
@RequestParam(value="pw",required = false,defaultValue = "")String pw)
{
return id.equals("abc123")&&pw.equals("xxx123")? "request/req_quiz01_ok":"request/req_quiz01_no";
}
}
화면을 그리는 메서드를 우선 생성
요청받는건 post로 제한되었으니 @PostMapping사용
@RequestParam은 아이디와 비밀번호를 입력하지 않으면 안되기 때문에 value만 주어도 되지만 추가로 주었다.
return을 통해 조건에 맞으면 ok로, 아닐 경우 no로.
+)이때, 화면을 그리는 걸 @RequestMapping으로 생성하였고, 이동을 @PostMapping으로 하였기 때문에
form의 action경로와 두 경로가 모두 일치해도 정상적으로 작동한다. 값이 있는가에 따라 다르게 적용된다.
만...굳이 똑같이 할 필요는 없을 듯.
'Spring' 카테고리의 다른 글
230202 Spring 화면보내기2 @ModelAttribute, RedirectAttributes (0) | 2023.02.02 |
---|---|
230201 Spring 화면 보내기 Model객체, ModelAndView 객체 (0) | 2023.02.01 |
230201 Spring @Controller, @RequestMapping 2와 @RequestParam (0) | 2023.02.01 |
230201 Spring MVC Controller 객체 구현. @Controller와 @RequestMapping (0) | 2023.02.01 |
230201 Spring Spring Legacy Project 생성하기 (0) | 2023.02.01 |