[Spring] 커맨드 객체 사용방법#2
- 웹/Spring
- 2020. 10. 26.
커맨드객체를 통해 값을 출력할때 EL(Expression Language)을 사용했습니다.
이번엔 EL에 별칭을 주는 방법을 알아보겠습니다.
StudentInformation DTO/VO
package com.co.mvc05_03;
public class StudentInformation {
private String name;
private String age;
private String gradeNum;
private String classNum;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getGradeNum() {
return gradeNum;
}
public void setGradeNum(String gradeNum) {
this.gradeNum = gradeNum;
}
public String getClassNum() {
return classNum;
}
public void setClassNum(String classNum) {
this.classNum = classNum;
}
}
StudentInformation을 studentInfo 라는 별칭으로 사용해 EL로 출력하는 방법을 보겠습니다.
기존방식
@RequestMapping(value = "/student", method = RequestMethod.GET)
public String studentInfo(Model model, StudentInfomation studentInfo) {
model.addAttribute("studentInfo", studentInfo);
return "studentView";
}
model.addAttribute("studentInfo",studentInfo); 를 사용하면 ${StudentInformation.name}이 아닌
${studentInfo.name}과 같은 방법으로 사용할 수 있습니다.
어노테이션 사용
@RequestMapping("student")
public String student(@ModelAttribute("studentInfo") StudentInformation studentInformation) {
return "studentView";
}
매개변수에 @ModelAttribute("studentInfo") StudentInformation studentInformation)
을 사용하면 메소드 내에서 설정해줄 필요없이 바로 별칭을 사용할 수 있습니다.
사용 예
전체 코드
HomeController
package com.co.mvc05_03;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String inPut(Model model, StudentInfomation studentInfo) {
return "studentInput";
}
//model에 studentInfo라는 별칭으로 사용하고싶으면 addAttribute사용 ( 기존방식 )
@RequestMapping(value = "/student", method = RequestMethod.GET)
public String studentInfo(Model model, StudentInfomation studentInfo) {
model.addAttribute("studentInfo", studentInfo);
return "studentView";
}
/*
// studentInfomation에 별칭 부여 하고싶으면 어노테이션을 사용하는 방법도 있음
@RequestMapping("student")
public String student(@ModelAttribute("studentInfo") StudentInfomation studentInfomation) {
return "studentView";
}*/
}
StudentInfomation
package com.co.mvc05_03;
public class StudentInfomation {
private String name;
private String age;
private String gradeNum;
private String classNum;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getGradeNum() {
return gradeNum;
}
public void setGradeNum(String gradeNum) {
this.gradeNum = gradeNum;
}
public String getClassNum() {
return classNum;
}
public void setClassNum(String classNum) {
this.classNum = classNum;
}
}
studentInput.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>
<form action="./student">
이름:<input type="text" name="name">
나이:<input type="text"name="age">
학년:<input type="text" name="gradeNum">
반:<input type="text" name="classNum">
<input type="submit">
</form>
</body>
</html>
studentView.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>
이름 : ${studentInfo.name}<br>
나이:${studentInfo.age}<br>
학년:${studentInfo.gradeNum }<br>
반:${studentInfo.classNum }<br>
</body>
</html>
'웹 > Spring' 카테고리의 다른 글
[Spring] Log4j Cannot find DTD 에러 (0) | 2021.08.02 |
---|---|
[Spring] Redirect로 페이지 넘기기 (0) | 2020.10.26 |
[Spring] 커맨드객체 사용방법#1 (0) | 2020.10.26 |
[Spring] get/post방식으로 데이터 전송하기 (0) | 2020.10.26 |
[Spring] 스프링 웹(jsp)에 데이터출력하기#3 (0) | 2020.10.26 |