TestController.java
@Controller
@SessionAttributes({"sessionBean1", "sessionBean2"})
//요청이 발생되면 sessionBean1, sessionBean2 메소드 호출.
public class TestController {
@GetMapping("/test1")
public String test1(HttpServletRequest request) {
HttpSession session = request.getSession();
session.setAttribute("data1", "문자1");
return "test1";
}
@GetMapping("/result1")
public String result1(HttpServletRequest request) {
HttpSession session = request.getSession();
String data1 = (String)session.getAttribute("data1");
System.out.println("data1 : " + data1);
return "result1";
}
//======================DataBean======================
@GetMapping("/test2")
public String test2(HttpSession session, DataBean bean) {
bean.setData1("Hello");
bean.setData2("World");
session.setAttribute("bean", bean);
return "redirect:/result2";
}
/*
@GetMapping("/result2")
public String result2(HttpSession session) {
DataBean bean = (DataBean)session.getAttribute("bean");
System.out.println("data1 : " + bean.getData1());
System.out.println("data2 : " + bean.getData2());
return "result2";
}
*/
@GetMapping("/result2")
public String result2(@SessionAttribute("bean") DataBean bean) {
System.out.println("bean.data1 : " + bean.getData1());
System.out.println("bean.data2 : " + bean.getData2());
return "result2";
}
//===========메소드로 객체 생성 후 세션 영역에 올리기=============
@ModelAttribute("sessionBean1")
public DataBean sessionBean1() {
return new DataBean();
}
@ModelAttribute("sessionBean2")
public DataBean sessionBean2() {
return new DataBean();
}
@GetMapping("/test3")
public String test3(@ModelAttribute("sessionBean1") DataBean sessionBean1, @ModelAttribute("sessionBean2") DataBean sessionBean2) {
sessionBean1.setData1("헬로");
sessionBean1.setData2("월드");
sessionBean2.setData1("안녕");
sessionBean2.setData2("세상아");
return "result3";
}
@GetMapping("/result3")
public String result3(@ModelAttribute("sessionBean1") DataBean sessionBean1, @ModelAttribute("sessionBean2") DataBean sessionBean2) {
System.out.println("sessionBean1.data1 : " + sessionBean1.getData1());
System.out.println("sessionBean1.data2 : " + sessionBean1.getData2());
System.out.println("sessionBean2.data1 : " + sessionBean2.getData1());
System.out.println("sessionBean2.data2 : " + sessionBean2.getData2());
return "result3";
}
result1.jsp
<h1>result1</h1>
data1 : ${data1 }<br>
result2.jsp
<h1>result2</h1>
data1 : ${bean.data1 }<br>
data2 : ${bean.data2 }<br>
result3.jsp
<h1>result3</h1>
sessionBean1.data1 : ${sessionBean1.data1 }<br>
sessionBean1.data2 : ${sessionBean1.data2 }<br>
<hr />
sessionBean2.data1 : ${sessionBean2.data1 }<br>
sessionBean2.data2 : ${sessionBean2.data2 }<br>
RootAppContext.java
@Configuration
public class RootAppContext {
@Bean
@SessionScope
public DataBean1 dataBean1() {
return new DataBean1();
}
@Bean("sessionBean2")
@SessionScope
public DataBean2 dataBean2() {
return new DataBean2();
}
@Bean
@SessionScope
public DataBean3 dataBean3() {
return new DataBean3();
}
@Bean("sessionBean4")
@SessionScope
public DataBean4 dataBean4() {
return new DataBean4();
}
}
DataBean3.java에 @Component
DataBean4.java에 @Component("value=sessionBean4")
ServletAppContext.java에 @ComponentScan("kr.co.soft.beans") 어노테이션 올리기.
TestController.java
@Controller
public class TestController {
@Autowired
DataBean1 sessionBean1;
@Resource(name="sessionBean2")
DataBean2 sessionBean2;
@Autowired
DataBean3 sessionBean3;
@Resource(name="sessionBean4")
DataBean4 sessionBean4;
//========================================
@GetMapping("/test1")
public String test1() {
sessionBean1.setData1("I Love");
sessionBean1.setData2("Chocolate");
sessionBean2.setData3("Cupcake and");
sessionBean2.setData4("Pancake");
sessionBean3.setData5("I Love");
sessionBean3.setData6("NYC");
sessionBean4.setData7("Pizza and");
sessionBean4.setData8("Burger");
return "test1";
}
@GetMapping("/result1")
public String result1(Model model) {
System.out.println("data1 : " + sessionBean1.getData1());
System.out.println("data2 : " + sessionBean1.getData2());
System.out.println("data3 : " + sessionBean2.getData3());
System.out.println("data4 : " + sessionBean2.getData4());
System.out.println("data5 : " + sessionBean3.getData5());
System.out.println("data6 : " + sessionBean3.getData6());
System.out.println("data7 : " + sessionBean4.getData7());
System.out.println("data8 : " + sessionBean4.getData8());
model.addAttribute("sessionBean1", sessionBean1);
model.addAttribute("sessionBean2", sessionBean2);
model.addAttribute("sessionBean3", sessionBean3);
model.addAttribute("sessionBean4", sessionBean4);
return "result1";
}
}
result1.jsp
<h1>result1</h1>
data1 : ${sessionBean1.data1 }<br>
data2 : ${sessionBean1.data2 }<br>
data3 : ${sessionBean2.data3 }<br>
data4 : ${sessionBean2.data4 }<br>
data5 : ${sessionBean3.data5 }<br>
data6 : ${sessionBean3.data6 }<br>
data7 : ${sessionBean4.data7 }<br>
data8 : ${sessionBean4.data8 }<br>
'◦ Spring Project > Basic' 카테고리의 다른 글
Cookie (0) | 2022.03.01 |
---|---|
Application (0) | 2022.02.28 |
Redirect vs Forward (0) | 2022.02.26 |
form:form (0) | 2022.02.24 |
Spring의 Command 객체 (0) | 2022.02.24 |