일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정수형타입
- 대덕인재개발원
- Java
- 생성자오버로드
- cursor문
- 자동차수리시스템
- 어윈 사용법
- 오라클
- 객체 비교
- 참조형변수
- 제네릭
- 다형성
- 인터페이스
- 집합_SET
- NestedFor
- exception
- 컬렉션 타입
- 추상메서드
- 예외미루기
- 예외처리
- GRANT VIEW
- EnhancedFor
- 환경설정
- oracle
- 한국건설관리시스템
- 사용자예외클래스생성
- 메소드오버로딩
- 자바
- abstract
- 컬렉션프레임워크
- Today
- Total
거니의 velog
231124_SPRING 2 (3-2) 본문
[ModelMemberController.java]
package kr.or.ddit.controller.model;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Controller
public class ModelMemberController {
/*
* [ 6장 : 데이터 전달자 모델 ]
*
* 1. 모델 객체
*
* - Model 객체는 뷰(View)에 컨트롤러에서 생성된 데이터를 담아서 전달하는 역할을 한다.
*
* 2. 모델을 통한 데이터 전달
*
* - Model 객체를 통해서 다양한 데이터를 뷰(View)에 전달할 수 있다.
*
* ** 우리가 사용해 본 데이터 전달자
* > ModelAndView
* > Model
*/
// 1) 매개변수에 선언된 Model 객체의 addAttribute() 메서드를 호출하여 데이터를 뷰(View)에 전달한다.
@RequestMapping(value = "/read01", method = RequestMethod.GET)
public String read01(Model model) {
log.info("read01() 실행...!");
model.addAttribute("userId", "hongkd");
model.addAttribute("password", "1234");
model.addAttribute("email", "aaa@ccc.com");
model.addAttribute("userName", "홍길동");
model.addAttribute("birthDay", "1999-09-09");
return "member/read01";
}
}
[read01.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>READ01 - Result</title>
</head>
<body>
<h3>READ01 - Result</h3>
userId : ${userId }<br />
password : ${password }<br />
email : ${email }<br />
userName : ${userName }<br />
birthDay : ${birthDay }<br />
</body>
</html>
- http://localhost/read01
// 2) Model 객체에 자바빈즈 클래스 객체를 값으로만 전달할 때는 뷰에서 참조할 이름을 클래스명의 앞글자를 소문자로 변환하여 처리한다.
@RequestMapping(value = "/read02", method = RequestMethod.GET)
public String read02(Model model) {
log.info("read02() 실행...!");
Member member = new Member();
member.setUserId("hongkd");
member.setPassword("1234");
member.setEmail("aaa@ccc.com");
member.setUserName("홍길동");
member.setBirthDay("1999-09-09");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1999);
cal.set(Calendar.MONTH, 10);
cal.set(Calendar.DAY_OF_MONTH, 10);
member.setDateOfBirth(cal.getTime());
model.addAttribute(member);
return "member/read02";
}
[read02.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>READ02 - Result</title>
</head>
<body>
<h3>READ02 - Result</h3>
userId : ${member.userId }<br />
password : ${member.password }<br />
email : ${member.email }<br />
userName : ${member.userName }<br />
birthDay : ${member.birthDay }<br />
dateOfBirth : ${member.dateOfBirth }<br />
</body>
</html>
- http://localhost/read02
// 3) Model 객체에 자바빈즈 클래스 객체를 특정한 이름을 지정하여 전달할 수 있다.
@RequestMapping(value = "/read03", method = RequestMethod.GET)
public String read03(Model model) {
log.info("read03() 실행...!");
Member member = new Member();
member.setUserId("hongkd");
member.setPassword("1234");
member.setEmail("aaa@ccc.com");
member.setUserName("홍길동");
member.setBirthDay("1999-09-09");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1999);
cal.set(Calendar.MONTH, 10);
cal.set(Calendar.DAY_OF_MONTH, 10);
member.setDateOfBirth(cal.getTime());
model.addAttribute("user", member);
return "member/read03";
}
[read03.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>READ03 - Result</title>
</head>
<body>
<h3>READ03 - Result</h3>
userId : ${user.userId }<br />
password : ${user.password }<br />
email : ${user.email }<br />
userName : ${user.userName }<br />
birthDay : ${user.birthDay }<br />
dateOfBirth : ${user.dateOfBirth }<br />
</body>
</html>
- http://localhost/read03
// 4) Model 객체를 통해 배열과 컬렉션 객체를 전달할 수 있다.
@RequestMapping(value = "/read04", method = RequestMethod.GET)
public String read04(Model model) {
log.info("read04() 실행...!");
String[] carArray = {"jeep", "bmw"};
List<String> carList = new ArrayList<String>();
carList.add("jeep");
carList.add("bmw");
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 "member/read04";
}
[read04.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>READ04 - Result</title>
</head>
<body>
<h3>READ04 - Result</h3>
<h4>carArray</h4>
<hr />
<c:forEach items="${carArray }" var="car">
<c:out value="${car }" />
</c:forEach>
<br /><hr />
<h4>carList</h4>
<hr />
<c:forEach items="${carList }" var="car">
<c:out value="${car }" />
</c:forEach>
<br /><hr />
<h4>hobbyArray</h4>
<hr />
<c:forEach items="${hobbyArray }" var="hobby">
<c:out value="${hobby }" />
</c:forEach>
<br /><hr />
<h4>hobbyList</h4>
<hr />
<c:forEach items="${hobbyList }" var="hobby">
<c:out value="${hobby }" />
</c:forEach>
<br /><hr />
</body>
</html>
- http://localhost/read04
// 5) Model 객체를 통해 다양한 타입의 값을 전달할 수 있다.
@RequestMapping(value = "/read05", method = RequestMethod.GET)
public String read05(Model model) {
log.info("read05() 실행...!");
Member member = new Member();
member.setUserId("hongkd");
member.setPassword("1234");
member.setEmail("aaa@ccc.com");
member.setUserName("홍길동");
member.setBirthDay("1999-09-09");
member.setGender("남자");
member.setDeveloper("Y");
member.setForeigner(true);
member.setNationality("Korea");
member.setCars("Jeep");
String[] carArray = {"jeep", "bmw"};
member.setCarArray(carArray);
List<String> carList = new ArrayList<String>();
carList.add("bmw");
carList.add("audi");
member.setCarList(carList);
member.setHobby("Music, Movie");
String[] hobbyArray = {"Music", "Movie"};
member.setHobbyArray(hobbyArray);
List<String> hobbyList = new ArrayList<String>();
hobbyList.add("Music");
hobbyList.add("Sports");
member.setHobbyList(hobbyList);
Address address = new Address();
address.setPostCode("080098");
address.setLocation("Daejeon");
member.setAddress(address);
List<Card> cardList = new ArrayList<Card>();
Card card1 = new Card();
card1.setNo("12345");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2023);
cal.set(Calendar.MONTH, 11);
cal.set(Calendar.DAY_OF_MONTH, 20);
card1.setValidMonth(cal.getTime());
cardList.add(card1);
Card card2 = new Card();
card2.setNo("67890");
cal.set(Calendar.YEAR, 2023);
cal.set(Calendar.MONTH, 11);
cal.set(Calendar.DAY_OF_MONTH, 23);
card2.setValidMonth(cal.getTime());
cardList.add(card2);
member.setCardList(cardList);
member.setDateOfBirth(cal.getTime());
member.setIntroduction("안녕하세요!\n반갑습니다!");
model.addAttribute("user", member);
return "member/read05";
}
[read05.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>READ05 - Result</title>
</head>
<body>
<h3>READ05 - Result</h3>
userId : ${user.userId }<br />
password : ${user.password }<br />
userName : ${user.userName }<br />
email : ${user.email }<br />
birthDay : ${user.birthDay }<br />
gender : ${user.gender }<br />
hobby : ${user.hobby }<br />
<p>hobbyArray</p>
<c:forEach items="${user.hobbyArray }" var="hobby">
<c:out value="${hobby }" />
</c:forEach>
<br />
<br />
<p>hobbyList</p>
<c:forEach items="${user.hobbyList }" var="hobby">
<c:out value="${hobby }" />
</c:forEach>
<br />
<br />
foreigner : ${user.foreigner }<br />
developer : ${user.developer }<br />
nationality : ${user.nationality }<br />
address.postCode : ${user.address.postCode }<br />
address.location : ${user.address.location }<br />
<p>cardList</p>
<c:forEach items="${user.cardList }" var="card">
<c:out value="${card.no } ${card.validMonth }" />
</c:forEach>
<br />
<br />
<p>carList</p>
<c:forEach items="${user.carList }" var="car">
<c:out value="${car }" />
</c:forEach>
<br />
<br />
introduction : ${user.introduction }<br />
dateOfBirth : ${user.dateOfBirth }<br />
</body>
</html>
- http://localhost/read05
[ModelArrtibuteMemberController.java]
package kr.or.ddit.controller.model;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Controller
@RequestMapping("/modelarrtibute")
public class ModelArrtibuteMemberController {
/*
* 3. @ModelArrtibute 어노테이션
*
* - @ModelArrtibute는 전달받은 매개변수를 강제로 Model에 담아서 전달하도록 할 때 필요한 어노테이션이다
*/
@RequestMapping(value = "/registerForm", method = RequestMethod.GET)
public String registerForm() {
log.info("registerForm() 실행...!");
return "member/registerModelAttributeForm";
}
}
[registerModelAttributeForm.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>registerModelAttributeForm</title>
</head>
<body>
<h3>3. @ModelAttribute 어노테이션</h3>
<hr />
<p>2) 기본 자료형인 매개변수에 @ModelAttribute 어노테이션을 지정하여 데이터를 전달한다.</p>
<form action="/modelattribute/register02" method="post">
userId : <input type="text" name="userId" /><br />
password : <input type="text" name="password" /><br />
<button type="submit">전송</button>
</form>
</body>
</html>
- http://localhost/modelarrtibute/registerForm
// 2) 기본 자료형인 매개변수에 @ModelAttribute 어노테이션을 지정하여 데이터를 전달한다.
// 이 때, 어노테이션을 적용하지 않은 기본 자료형인 경우엔 데이터를 전달할 수 없다.
@RequestMapping(value = "/register02", method = RequestMethod.POST)
public String register02(
@ModelAttribute String userId,
@ModelAttribute String password
) {
log.info("register02() 실행...!");
log.info("userId : " + userId);
log.info("password : " + password);
return "result";
}
[result.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>RESULT</title>
</head>
<body>
userId : ${userId }<br />
password : ${password }<br />
member.userId : ${member.userId }<br />
member.password : ${member.password }<br />
msg : ${msg }
</body>
</html>
- http://localhost/modelarrtibute/registerForm
// 2) 기본 자료형인 매개변수에 @ModelAttribute 어노테이션을 지정하여 데이터를 전달한다.
// 이 때, 어노테이션을 적용하지 않은 기본 자료형인 경우엔 데이터를 전달할 수 없다.
@RequestMapping(value = "/register02", method = RequestMethod.POST)
public String register02(
@ModelAttribute("userId") String userId,
@ModelAttribute("password") String password
) {
log.info("register02() 실행...!");
log.info("userId : " + userId);
log.info("password : " + password);
return "result";
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>registerModelAttributeForm</title>
</head>
<body>
<h3>3. @ModelAttribute 어노테이션</h3>
<hr />
<p>2) 기본 자료형인 매개변수에 @ModelAttribute 어노테이션을 지정하여 데이터를 전달한다.</p>
<form action="/modelarrtibute/register02" method="post">
userId : <input type="text" name="userId" /><br />
password : <input type="text" name="password" /><br />
<button type="submit">전송</button>
</form>
<p>3) 자바빈즈 규칙에 맞는 객체는 매개변수로 선언하면 기본적으로 전달된다.</p>
<form action="/modelarrtibute/register03" method="post">
userId : <input type="text" name="userId" /><br />
password : <input type="text" name="password" /><br />
<button type="submit">전송</button>
</form>
</body>
</html>
// 3) 자바빈즈 규칙에 맞는 객체는 매개변수로 선언하면 기본적으로 전달된다.
@RequestMapping(value = "/register03", method = RequestMethod.POST)
public String register03(Member member) {
log.info("register03() 실행...!");
log.info("userId : " + member.getUserId());
log.info("password : " + member.getPassword());
return "result";
}
- http://localhost/modelarrtibute/registerForm
// 3) 자바빈즈 규칙에 맞는 객체는 매개변수로 선언하면 기본적으로 전달된다.
@RequestMapping(value = "/register03", method = RequestMethod.POST)
public String register03(Member user) {
log.info("register03() 실행...!");
// Member 객체의 객체명 앞글자가 소문자로 바뀌어 화면단에 key로 넘어간다.
log.info("userId : " + user.getUserId());
log.info("password : " + user.getPassword());
return "result";
}
[RedirectAttributeMemberController.java]
package kr.or.ddit.controller.model;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Controller
@RequestMapping("/redirectattribute")
public class RedirectAttributeMemberController {
/*
* 4. RedirectAttribute 타입
*
* - RedirectAttribute는 일회성 데이터를 전달하는 용도로 사용한다.
*/
// RedirectAttribute 타입 테스트 페이지
@RequestMapping(value = "/registerForm", method = RequestMethod.GET)
public String registerForm() {
log.info("registerForm() 실행...!");
return "/member/registerRedirectAttributeForm";
}
}
[registerRedirectAttributeForm.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>registerRedirectAttributeForm</title>
</head>
<body>
<h3>RedirectAttribute 타입</h3>
<form action="/redirectattribute/register" method="post">
userId : <input type="text" name="userId" /><br />
password : <input type="text" name="password" /><br />
msg : <input type="text" name="msg" /><br />
<button type="submit">전송</button>
</form>
</body>
</html>
package kr.or.ddit.controller.model;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import kr.or.ddit.vo.Member;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Controller
@RequestMapping("/redirectattribute")
public class RedirectAttributeMemberController {
/*
* 4. RedirectAttribute 타입
*
* - RedirectAttribute는 일회성 데이터를 전달하는 용도로 사용한다.
*/
// RedirectAttribute 타입 테스트 페이지
@RequestMapping(value = "/registerForm", method = RequestMethod.GET)
public String registerForm() {
log.info("registerForm() 실행...!");
return "/member/registerRedirectAttributeForm";
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(
Member member, String msg, RedirectAttributes ra
) {
log.info("register() 실행...!");
log.info("userId : " + member.getUserId());
log.info("password : " + member.getPassword());
log.info("msg : " + msg);
ra.addFlashAttribute("msg", msg);
return "redirect:/redirectattribute/result";
}
@RequestMapping(value = "/result", method = RequestMethod.GET)
public String result() {
log.info("result() 실행...!");
return "result";
}
}
- http://localhost/redirectattribute/registerForm
[JSPHomeController.java]
package kr.or.ddit.controller.jsp;
import org.springframework.stereotype.Controller;
@Controller
public class JSPHomeController {
/*
* [ 7장 : JSP ]
*
* 1. 지시자
*
* - 지시자(directive)는 JSP 페이지에 대한 설정 정보를 지정할 때 사용한다.
* - JSP가 제공하는 지시자에는 page 지시자, taglib 지시자, include 지시자로 세 가지가 있다.
*
* 1) page 지시자
*
* - JSP 페이지에 대한 정보를 지정한다.
*
* 속성 | 설명
* --------------------------------------------------------------
* contentType | JSP가 생성할 문서의 MIME 타입과 문자 코드를 지정한다.
* pageEncoding | JSP 페이지 자체의 문자 코드를 지정한다.
* session | JSP 페이지가 세션을 사용할 지의 여부를 결정한다.
* import | JSP 페이지에서 사용할 자바 클래스를 지정한다.
* --------------------------------------------------------------
*
* 2) taglib 지시자
*
* - JSP 페이지에서 사용할 태그 라이브러리를 지정한다.
*
* 속성 | 설명
* --------------------------------------------------------------
* prefix | 태그 라이브러리를 호출할 때 사용할 접두어를 지정한다.
* uri | TDL 파일이 위치한 URI 혹은 파일 경로를 지정한다.
* --------------------------------------------------------------
*
* 3) include 지시자
*
* - JSP 페이지의 특정 영역에 다른 문서를 포함한다.
*
* 속성 | 설명
* --------------------------------------------------------------
* file | 포함할 파일의 경로를 지정한다.
* --------------------------------------------------------------
*
* 2. 스크립틀릿
*
* - 스크립틀릿(Scriptlet)은 JSP 페이지에서 자바 코드를 실행할 때 사용하는 코드의 블록이다.
* - 스크립틀릿 코드 블록은 "<%" 와 "%>" 사이, 그리고 "<%=" 와 "%>" 사이에 자바 코드를 포함할 수 있다.
* - 현재는 스크립틀릿을 사용하기 보다는 JSTL과 같은 커스텀 태그 라이브러리와 EL을 조합해서 JSP를 구현하는 방법을 많이 사용한다.
*
* 3. 커스텀 태그 라이브러리
*
* - 스크립트 요소가 많아지면 많아질수록 JSP 코드는 복잡해진다.
* - 이 문제를 해결하는 한 가지 방법은 커스텀 태그를 사용하는 것이다.
* - 커스텀 태그를 사용하면 뷰를 표시하기 위한 로직을 공통화하거나, 표현하기 복잡한 로직을 캡슐화할 수 있어서
* - JSP의 구현 코드를 간결하게 만들 수 있다. 그리고, 커스텀 태그를 모아 놓은 것을 커스텀 태그 라이브러리라고 한다.
*
* # 대표적인 태그 라이브러리
* - JSTL(JavaServer Pages Standard Tag Library)
* - spring-form JSP Tag Library
* - spring JSP Tag Library
* - spring Security JSP Tag Library
*
* 4. 표현언어(EL)
*
* - JSP는 EL(Expression Language)이라는 표현 언어를 사용해 값의 참조, 출력, 연산을 할 수 있다.
* - EL 식은 ${...} 또는 #{...} 형식으로 작성한다.
*
* # EL을 사용하여 객체를 조회하는 방법은 다음과 같다.
* - 자바빈즈 프로퍼티를 조회하는 경우 "속성명.프로퍼티명"을 지정한다.
* - List나 배열 요소를 조회하는 경우 "속성명[요소위치]"를 지정한다.
* - Map 요소를 조회하는 경우 "속성명.키명" 또는 "속성명[키명]"을 지정한다.
*
* # 사용 가능한 연산자
* - EL에서는 다음과 같은 연산자를 사용할 수 있다.
*
* # 산술 연산자
* + | - | * | /(div) | %(mod) |
* ---------------------------------------------------
* 더하기 | 빼기 | 곱하기 | 나누기 | 나머지 |
* ---------------------------------------------------
*
* # 비교 연산자
* 연산자 | 설명
* ---------------------------------------------------
* ==(eq) | 같은 값인지 비교한다
* !=(ne) | 다른 값인지 비교한다
* <=(le) | 왼쪽이 작거나 같은 값인지 비교한다
* >=(ge) | 왼쪽이 크거나 같은 값인지 비교한다
* <(lt) | 왼쪽이 작은 값인지 비교한다
* >(gt) | 왼쪽이 큰 값인지 비교한다
*
* # empty 연산자
* - null 이거나 공백(문자열의 경우 공백 문자)인지 비교
*
* [true 조건:::]
* - null 값, 빈 문자열(""), 길이가 0인 배열, 빈 Collection
*
* # 논리 연산자
* 연산자 | 설명
* ---------------------------------------------------
* &&(and) | 두 피연산자 모두 true 이면 bool true를 반환하고, 그렇지 않으면 false를 반환한다.
* ||(or) | 두 피연산자 중 하나 또는 모두 true면 bool true를 반환하고, 그렇지 않으면 false를 반환한다.
* !(not) | 해당 피연산자의 의미를 반대로 바꾼다.
* ---------------------------------------------------
*/
}
@RequestMapping(value = "/home0104", method = RequestMethod.GET)
public String home0104(Model model) {
log.info("home0104() 실행...!");
Map<String, String> memberMap = new HashMap<String, String>();
memberMap.put("userId", "hong");
memberMap.put("password", "1234");
memberMap.put("email", "aaa@ccc.com");
memberMap.put("userName", "홍길동");
model.addAttribute("memberMap", memberMap);
return "home/home0104";
}
[home0104.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>home0104</title>
</head>
<body>
<h3>4. 표현언어(EL)을 이용하여 출력</h3>
<p>1) 자바빈즈 프로퍼티를 조회하는 경우 '속성명.프로퍼티명' 또는 '속성명[키명]'을 지정한다.</p>
<table border="1">
<tr>
<td>\${memberMap.userId }</td>
<td>${memberMap["userId"] }</td>
</tr>
<tr>
<td>\${memberMap.password }</td>
<td>${memberMap["password"] }</td>
</tr>
<tr>
<td>\${memberMap.email }</td>
<td>${memberMap["email"] }</td>
</tr>
<tr>
<td>\${memberMap.userName }</td>
<td>${memberMap["userName"] }</td>
</tr>
</table>
</body>
</html>
- http://localhost/home0104
// 산술 연산자
@RequestMapping(value = "/home0201", method = RequestMethod.GET)
public String home0201(Model model) {
log.info("home0201() 실행...!");
int coin = 100;
model.addAttribute("coin", coin);
return "home/home0201";
}
[home0201.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>home0104</title>
</head>
<body>
<h3>4. 표현언어(EL)</h3>
<p>2) 산술 연산자를 이용한 방법</p>
<table border="1">
<tr>
<td>\${coin }</td>
<td>${coin }</td>
</tr>
<tr>
<td>\${coin + 100 }</td>
<td>${coin + 100 }</td>
</tr>
<tr>
<td>\${coin - 100 }</td>
<td>${coin - 100 }</td>
</tr>
<tr>
<td>\${coin * 100 }</td>
<td>${coin * 100 }</td>
</tr>
<tr>
<td>\${coin / 100 }</td>
<td>${coin / 100 }</td>
</tr>
<tr>
<td>\${coin div 100 }</td>
<td>${coin div 100 }</td>
</tr>
<tr>
<td>\${coin % 100 }</td>
<td>${coin % 100 }</td>
</tr>
<tr>
<td>\${coin mod 100 }</td>
<td>${coin mod 100 }</td>
</tr>
</table>
</body>
</html>
- http://localhost/home0201
// 비교 연산자
@RequestMapping(value = "/home0202", method = RequestMethod.GET)
public String home0202(Model model) {
log.info("home0202() 실행...!");
int coin = 1000;
String userId = "hongkd";
model.addAttribute("coin", coin);
model.addAttribute("userId", userId);
return "home/home0202";
}
[home0202.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>home0104</title>
</head>
<body>
<h3>4. 표현언어(EL)</h3>
<p>3) 비교 연산자를 이용한 방법</p>
<table border="1">
<tr>
<td>\${coin == 1000 }</td>
<td>${coin == 1000 }</td>
</tr>
<tr>
<td>\${coin eq 1000 }</td>
<td>${coin eq 1000 }</td>
</tr>
<tr>
<td>\${coin != 500 }</td>
<td>${coin != 500 }</td>
</tr>
<tr>
<td>\${coin ne 500 }</td>
<td>${coin ne 500 }</td>
</tr>
<tr>
<td>\${coin < 2000 }</td>
<td>${coin < 2000 }</td>
</tr>
<tr>
<td>\${coin lt 2000 }</td>
<td>${coin lt 2000 }</td>
</tr>
<tr>
<td>\${coin > 500 }</td>
<td>${coin > 500 }</td>
</tr>
<tr>
<td>\${coin gt 500 }</td>
<td>${coin gt 500 }</td>
</tr>
<tr>
<td>\${coin <= 1000 }</td>
<td>${coin <= 1000 }</td>
</tr>
<tr>
<td>\${coin le 1000 }</td>
<td>${coin le 1000 }</td>
</tr>
<tr>
<td>\${coin >= 1000 }</td>
<td>${coin >= 1000 }</td>
</tr>
<tr>
<td>\${coin ge 1000 }</td>
<td>${coin ge 1000 }</td>
</tr>
</table>
<table border="1">
<tr>
<td>\${userId == 'hongkd' }</td>
<td>${userId == 'hongkd' }</td>
</tr>
<tr>
<td>\${userId eq 'hongkd' }</td>
<td>${userId eq 'hongkd' }</td>
</tr>
</table>
</body>
</html>
- http://localhost/home0202
// empty 연산자
@RequestMapping(value = "/home0302", method = RequestMethod.GET)
public String home0302(Model model) {
log.info("home0302() 실행...!");
Member member = new Member();
model.addAttribute("member", member);
return "home/home0302";
}
[home0302.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>home0104</title>
</head>
<body>
<h3>4. 표현언어(EL)</h3>
<p>4) empty 연산자를 이용한 방법</p>
<table border="1">
<tr>
<td>\${empty member }</td>
<td>${empty member }</td>
</tr>
<tr>
<td>\${empty member.userId }</td>
<td>${empty member.userId }</td>
</tr>
</table>
</body>
</html>
- http://localhost/home0302
// 논리 연산자
@RequestMapping(value = "/home0401", method = RequestMethod.GET)
public String home0401(Model model) {
log.info("home0401() 실행...!");
int coin = 1000;
String userId = "hongkd";
Member member = new Member();
model.addAttribute("coin", coin);
model.addAttribute("userId", userId);
model.addAttribute("member", member);
return "home/home0401";
}
[home0401.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>home0104</title>
</head>
<body>
<h3>4. 표현언어(EL)</h3>
<p>5) 논리 연산자를 이용한 방법</p>
<table border="1">
<tr>
<td>\${coin == 1000 && userId == 'hongkd' }</td>
<td>${coin == 1000 && userId == 'hongkd' }</td>
</tr>
<tr>
<td>\${coin == 1000 and userId eq 'hongkd' }</td>
<td>${coin == 1000 and userId eq 'hongkd' }</td>
</tr>
<tr>
<td>\${not empty member && userId eq 'hongkd' }</td>
<td>${not empty member && userId eq 'hongkd' }</td>
</tr>
<tr>
<td>\${! empty member && userId eq 'hongkd' }</td>
<td>${! empty member && userId eq 'hongkd' }</td>
</tr>
</table>
</body>
</html>
- http://localhost/home0401
'대덕인재개발원_웹기반 애플리케이션' 카테고리의 다른 글
231127_SPRING 2 (4-2) (0) | 2023.11.27 |
---|---|
231127_SPRING 2 (4-1) (0) | 2023.11.27 |
231124_SPRING 2 (3-1) (2) | 2023.11.24 |
231123_SPRING 2 (2-3) 과제 (0) | 2023.11.23 |
231123_SPRING 2 (2-2) (0) | 2023.11.23 |