티스토리 뷰
직전 포스팅에서 자바빈의 property를 사용하여 태그에서 직접 set과 get을 수행할 수 있다고 했는데, 사실 그것보다는 property를 사용하는 가장 큰 이유가 따로 있다.
property는 사용할 클래스가 가지고 있는 맴버 변수들의 이름과 받아온 데이터의 이름이 같다면 자동으로 찾아서 property를 넣어주는 아주 간편한 기능을 가지고 있다.
이게 얼마나 편한지 예제를 통해 확인해보자.
◎MemberBean.java
package com.choonham;
public class MemberBean {
private String name;
private String userid;
private String nickname;
private String pwd;
private String email;
private String phone;
public MemberBean() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
◎addMemberForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>회원 정보 입력 폼</h3>
<form action = "addMember.jsp" method = "post">
이름: <input type = "text" required = "required" name = "name"/><br />
아이디: <input type = "text" required = "required" name = "userid"/><br />
별명: <input type = "text" required = "required" name = "nickname"/><br />
비밀번호: <input type = "text" required = "required" name = "pwd"/><br />
이메일: <input type = "text" required = "required" name = "email"/><br />
전화번호: <input type = "text" required = "required" name = "phone"/><br />
<input type = "submit" required = "required" value = "전송"/>
<input type = "reset" required = "required" name = "취소"/><br />
</form>
</body>
</html>
위와 같이 간단한 폼을 만들어주고, 입력 받는 모든 input 값의 name 속성을 MemberBean 클래스의 변수 이름과 동일하게 선언한 뒤,
◎addMember.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="member" class="com.choonham.MemberBean"/>
<jsp:setProperty property = "*" name = "member"/>
<!-- property 속성에 *을 찍으면, 맞는 property에 알아서 모든 맴버 변수가 들어간다. (개꿀;;) -->
이름: <jsp:getProperty property = "name" name = "member"/><br />
별명: <jsp:getProperty property = "nickname" name = "member"/><br />
e-mail: <jsp:getProperty property = "email" name = "member"/><br />
전화번호: <jsp:getProperty property = "phone" name = "member"/>
</body>
</html>
이렇게 property 속성에 *을 찍어 주면, request로 받는 모든 name 속성의 값에 맞는 Bean의 맴버 변수를 찾아 알아서 설정해준다. (개꿀...)
물론, 반드시 name의 값과 변수명은 동일해야한다.
다르면, null이 떨어진다.
이건... 진짜 개꿀이다.
반응형
'WEB > DynamicWeb' 카테고리의 다른 글
[JSP] JSTL - core (0) | 2021.04.23 |
---|---|
[JSP] EL 표현식 문법과 사용 방법 (0) | 2021.04.23 |
[JSP] JAVA Beans (0) | 2021.04.23 |
[JSP] 세션 활용 예제 <로그인> (0) | 2021.04.23 |
[JSP] 쿠키와 세션 (0) | 2021.04.23 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- 이탈리안 레스토랑
- redux
- react-native
- 파니노구스토
- Promise
- 맛집
- redux-thunk
- 인천 구월동 이탈리안 맛집
- AsyncStorage
- 정보보안기사 #실기 #정리
- javascript
- 인천 구월동 맛집
- await
- react
- Async
- Total
- Today
- Yesterday