package com.test.customTag;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("users")
public class userController {
@RequestMapping("input")
public String userInput(){
return "/users/input";
}
@RequestMapping("inputUp")
public String userInputUp(@RequestParam("userId") String userId,
@RequestParam("userName") String userName,
@RequestParam("userTel") String userTel,
@RequestParam("userEmail") String userEmail,
Model model){
Users users = new Users();
users.setUserId(userId);
users.setUserName(userName);
users.setUserTel(userTel);
users.setUserEmail(userEmail);
model.addAttribute("usersInfo", users);
return "/users/inputUp";
}
}
@RequestParam 어노테이션으로 값을 받아서 Model addAttribute로 파라미터 값을 세팅하지 않고
Users.class (DTO) 객체로 값을 세팅하고 있다. 그 후 객체를 Model addAttribute로 세팅해서 파라미터 값 몽땅 다 객체로 넘겼다.
Users.java
package com.test.customTag;
public class Users {
private String userId;
private String userName;
private String userTel;
private String userEmail;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserTel() {
return userTel;
}
public void setUserTel(String userTel) {
this.userTel = userTel;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
}
<%@ 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>
<h2>회원정보</h2>
<form method="post" action="inputUp">
아이디: <input type="text" name="userId" /> <br />
이름: <input type="text" name="userName" /> <br>
전화번호: <input type="text" name="userTel" /> <br>
이메일: <input type="text" name="userEmail" /> <br>
<input type="submit" value="전송" />
</form>
</body>
</html>
<%@ 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>
<h2>회원정보</h2>
아이디: ${usersInfo.userId}<br>
이름: ${usersInfo.userName}<br>
전화: ${usersInfo.userTel}<br>
이메일: ${usersInfo.userEmail}<br>
</body>
</html>
inputUp.jsp 페이지에서는 Controller 에서 model로 세팅된
model.addAttribute("usersInfo", users);
userInfo로 값을 표시하고 있다.
아이디: ${usersInfo.userId}<br>
이 방식 말고 Command 방식으로 아주 간단히 파라미터도 받고 값도 셋팅하는 방식이 있다.
아래는 Command 방식:
package com.test.customTag;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("users")
public class userController {
@RequestMapping("input")
public String userInput(){
return "/users/input";
}
@RequestMapping("inputUp")
public String userInputUp(Users users){
return "/users/inputUp";
}
}
Users(Users.java) 객체만 인자로 전달한다.
그럼면 Spring 컨테이너가 알아서 값을 셋팅한다.
그 후 ${users.userId} 표시하는 값만 Users 객체로 표시한다.
아주 간단하다.
<%@ 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>
<h2>회원정보(Command)</h2>
아이디: ${users.userId}<br>
이름: ${users.userName}<br>
전화: ${users.userTel}<br>
이메일: ${users.userEmail}<br>
</body>
</html>
나머지 페이지는 동일하다.
꼭 기억하자.