Spring 실습
Spring 실습 13일차(모델을 통한 데이터 전달)
choco2706
2024. 5. 9. 17:40
1. read01
MemberController에서 진행한다.
// 요청 URI : /read01
// Model 객체를 통해서 다양한 데이터를 뷰(View)에 전달
@GetMapping("/read01")
public String read01(Model model) {
model.addAttribute("userId","hongkd");
model.addAttribute("password","1234");
model.addAttribute("email","test@test.com");
model.addAttribute("userName","홍길동");
model.addAttribute("birthDay","1989-09-07");
return "read01";
}
model로 담긴 데이터를 read01.jsp로 보낼 수 있다.
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h3>Result</h3>
<p>userId : ${userId}</p>
<p>password : ${password}</p>
<p>email : ${email}</p>
<p>userName : ${userName}</p>
<p>birthDay : ${birthDay}</p>
2. read02
private String email;
private String birthDay;
private Date dateOfBirth;
VO에 위와 같이 추가해주고
// 요청 URI : /read02
// Model 객체를 통해서 다양한 데이터를 뷰(View)에 전달
//Model 객체에 자바빈즈 클래스 객체를 값으로만 전달할 때는 뷰에서
//참조할 이름을 클래스명의 앞글자를 소문자로 변환하여 처리함
@GetMapping("/read02")
public String read02(Model model) {
Member member = new Member();
member.setUserId("hongkd");
member.setPassword("1234");
member.setEmail("test@test.com");
member.setUserName("홍길동");
member.setBirthDay("1989-09-07");
Calendar cal = Calendar.getInstance();
cal.set(1988, 10, 7);
member.setDateOfBirth(cal.getTime());
model.addAttribute("member", member);
return "read02";
}
Controller를 작성하고, 그 후 read02.jsp를 만들어준다.
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%-- <p>${member}</p> --%>
<p>userId : ${member.userId}</p>
<p>userName : ${member.userName}</p>
member에 담긴 데이터들을 꺼내올 수 있다.
※ addAttribute를 아래와 같이 설정하면
model.addAttribute("user", member);
jsp에서 불러올때도 ${user.VO 변수명}으로 불러와야 한다.
3. 배열과 컬렉션을 전달
@GetMapping("read03")
public String read03(Model model) {
String[] carArray = {"ssab","audi"};
List<String> carList = new ArrayList<String>();
carList.add("ssab");
carList.add("audi");
String[] hobbyArray = {"Music","Movie"};
List<String> hobbyList = new ArrayList<String>();
hobbyList.add("Music");
hobbyList.add("Movie");
model.addAttribute("carArray", carArray);
model.addAttribute("carList", carList);
model.addAttribute("hobbyArray", hobbyArray);
model.addAttribute("hobbyList", hobbyList);
return "read03";
}
carArrat, carList, hobbyArray, hobbyList를 받아보자.
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h4>hobbyArray</h4>
<!-- hoddyArray -->
<c:forEach var="hobby" items="${hobbyArray}" varStatus="stat">
<!-- index는 0부터 시작 -->
<p>${stat.index} : ${hobby}</p>
</c:forEach>
<hr />
<h4>hobbyList</h4>
<!-- hoddyList<String> -->
<c:forEach var="hobby" items="${hobbyList}" varStatus="stat">
<!-- count는 1부터 시작 -->
<p>${stat.count} : ${hobby}</p>
</c:forEach>
<hr />
<h4>carArray</h4>
<!-- caryArray -->
<c:forEach var="car" items="${carArray}" varStatus="stat">
<!-- index는 0부터 시작 -->
<p>${stat.index} : ${car}</p>
</c:forEach>
<hr />
<h4>carList</h4>
<!-- carList<String> -->
<c:forEach var="car" items="${carList}" varStatus="stat">
<!-- count는 1부터 시작 -->
<p>${stat.count} : ${car}</p>
</c:forEach>
4. 중첩된 자바빈즈
@GetMapping("read04")
public String read04(Model model) {
Member member = new Member();
Address address = new Address();
address.setPostCode("080908");
address.setLocation("Cheonan");
member.setAddress(address);
List<Card> cardList = new ArrayList<Card>();
Card card1 = new Card();
card1.setNo("123456");
card1.setValidMonth("05/24");
Card card2 = new Card();
card2.setNo("654321");
card2.setValidMonth("06/24");
cardList.add(card1);
cardList.add(card2);
member.setCardList(cardList);
Calendar cal = Calendar.getInstance();
cal.set(2000, 05, 07);
member.setDateOfBirth(cal.getTime());
model.addAttribute("member",member);
return "read04";
}
member의 address와 cardList를 받아와본다
는 내일 이어서 작성하겠음(수업 진도가 여기서 끝나버림...)