티스토리 뷰

직전 포스팅에서 자바빈의 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