BACK END/Spring
3일(08.19) Redirect
라미보
2022. 8. 19. 14:51
📂 com.spring.ex
💾 RedirectController.java
package com.spring.ex;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class RedirectController {
@RequestMapping("/form")
public String form() {
return "redirect/form";
}
@RequestMapping("/input")
public String input(HttpServletRequest request, Model model) {
System.out.println("/input요청 처리");
String name = request.getParameter("name");
String age = request.getParameter("age");
model.addAttribute("name2", name);
model.addAttribute("age2", age);
model.addAttribute("addr2", "서울");
//return "redirect/result"; //
return "redirect:/last";
}
@RequestMapping("/last")
public String last() {
System.out.println("/last요청 처리");
return "redirect/last";
}
}
model.addAttribute("name2", name); - model로 설정하면 또다른 요청(last)에 의해 넘어갈때는 파라미터개념으로 생각하여 파라미터로 값을받으면 출력이 된다.
model.addAttribute("age2", age);
model.addAttribute("addr2", "서울"); - parameter로 입력한 주소값은 없다. 별도로 따로 챙긴다. (form에 주소 입력하는거 없음)
return "redirect:/last"; - last 요청, :(콜론)은 다시 controller를 요청 , 콜론이 없으면 redirect 폴더의 last로 가라는 의미가 된다.
return "redirect/result";
- result.jsp가 MVC의 View역할을 한다. controller의 요청이 끝나면 뷰를 요청
- controller의 요청이 끝나고 다시 controller요청을 할 수 있다.
📂 WEB-INF/views/redirect
💾 form.java
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
redirect/form.jsp<br>
<form action="input" method="post">
이름 : <input type="text" name="name"><br><br>
나이 : <input type="text" name="age"><br><br>
<input type="submit" value="전송">
</form>
💾 result.java
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
result.jsp<br><br>
<!-- 이름,나이 파라미터로 넘어간 것을 출력해본다. -->
이름1: ${param.name }<br>
나이1: ${param.age}<br>
주소1: ${param.addr }<br>
<br>
<!-- 속성 설정한것으로 값을 가지고와서 출력해본다. -->
이름2: ${name }<br>
나이2: ${requestScope.age }<br>
주소: ${addr}<br>
💾 last.java
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
redirect/last.jsp<br><br>
이름1: ${param.name2 }<br>
나이1: ${param.age2}<br>
주소1: ${param.addr2}<br>
<br>
이름2: ${name2 }<br>
나이2: ${requestScope.age2 }<br>
주소2: ${addr2}<br>
- 이름,나이 파라미터로 넘어간 것을 출력해본다. 출력된다. 속성으로 넘긴것이 파라미터로 결과가 나온다
- input요청에서 last컨트롤러 요청으로 넘어갈때 model로 속성 설정한 것이 파라미터개념으로 생각되어 파라미터로 값을 받는것에만 결과가 출력이 되는것