setProperty/getProperty 액션 태그를 이용한 회원 정보 실습
useBean 액션 태그를 사용해 자바 코드를 사용해 자바 코드를 사용하지 않고 자바 빈을 생성했습니다. 그러나 여전히 빈의 속성에 값을 설정할 때는 자바 코드에 setter을 사용하고 있습니다. useBean에 접근해 속성 값을 설정하거나 가져오는 <jsp:setProeperty> 엑션 태그와 <jsp:getProperty> 액션 태그를 사용하는 방법을 다음 표에 정리해 두었으니 참고하기 바랍니다.
setProperty와 getProperty 태그의 특징
| 이름 | 정의 | 형식 |
| setProperty | useBean의 속성에 값을 설정하는 태그 | 형식:<jsp:setProperty name="자바 빈 이름" property="속성 이름" value="값" /> - name: <jsp:useBean> 태그의 id 속성에 지정한 이름 - property: 값을 설정할 속성 이름 - value: 속성에 설정할 값 |
| getProperty | useBean의 속성 값을 얻는 태그 | 형식:<jsp:getProperty name="자바 빈 이름" property="속성 이름" /> - name: <jsp:useBean> 태그의 id 속성에 지정한 이름 - property: 값을 얻을 속성 이름 |
이번에는 자바의 setter를 사용하지 않고 빈 속성을 설정해 보겠습니다.
1. 다음과 같이 실습 파일 member3-7.jsp를 준비합니다.

2. member3.jsp에서 <jsp:useBean> 액션 태그로 생성된 빈에 대해 <jsp:setProperty> 액션 태그를 이용해 빈의 속성을 설정합니다. 이번에는 회원 가입창에서 전송한 회원 정보를 자바 코드, 즉 setter를 사용해 일일이 설정하지 않았다는 것이 큰 차이입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*,sec01.ex01.*"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="m" class="sec01.ex01.MemberBean" scope="page" />
<jsp:setProperty name= "m" property="id" value='<%=request.getParameter("id") %>'/>
<jsp:setProperty name="m" property="pwd" value='<%= request.getParameter("pwd") %>' />
<jsp:setProperty name="m" property="name" value='<%= request.getParameter("name") %>' />
<jsp:setProperty name="m" property="email" value='<%= request.getParameter("email") %>' />
<%
/* String id=request.getParameter("id");
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
String email = request.getParameter("email");
m.setId(id);
m.setPwd(pwd);
m.setName(name);
m.setEmail(email); */
MemberDAO memberDAO = new MemberDAO();
memberDAO.addMember(m);
List membersList = memberDAO.listMembers();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 목록창</title>
</head>
<body>
<table align="center" width="100%">
<tr align="center" bgcolor="#99ccff">
<td width="7%" >아이디</td>
<td width="7%">비밀번호</td>
<td width="5%" >이름</td>
<td width="11%" >이메일</td>
<td width="5%" >가입일</td>
</tr>
<%
if(membersList.size()==0){
%>
<tr>
<td colspan="5">
<p align="center"><b><span style="font-size:9pt;">
등록된 회원이 없습니다.</span></b></p>
</td>
</tr>
<%
}else{
for( int i = 0; i < membersList.size(); i++ ) {
MemberBean bean = (MemberBean) membersList.get(i);
%>
<tr align="center">
<td><%=bean.getId() %></td>
<td><%=bean.getPwd() %></td>
<td><%=bean.getName() %></td>
<td><%=bean.getEmail() %></td>
<td><%=bean.getJoinDate() %></td>
</tr>
<%
} // end for
} // end if
%>
<tr height="1" bgcolor="#99ccff">
<td colspan="5"></td>
</tr>
</table>
</body>
</html>
3. 실행 결과는 자바 빈을 사용했을 때와 같습니다.
4. 이번에는 회원 가입창에서 전달된 회원 정보를 <jsp:setProperty> 액션 태그를 이용해 유즈빈의 속성에 좀 더 편리하게 설정하는 방법을 알아보겠습니다.
먼저 회원 가입창의 각 매개변수 이름을 자바 빈을 속성 이름과 동일하게 설정합니다.

5. member4.jsp를 다음과 같이 작성합니다. <jsp:setProperty> 액션 태그의 param 속성을 이용해 회원 가입창에서 전달된 매개변수 이름으로 해당 useBean의 속성에 자동으로 값을 설정합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*,sec01.ex01.*"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="m" class="sec01.ex01.MemberBean" scope="page"/>
<jsp:setProperty name="m" property="id" param="id" />
<jsp:setProperty name="m" property="pwd" param="pwd" />
<jsp:setProperty name="m" property="name" param="name"/>
<jsp:setProperty name="m" property="email" param="email" />
<%
/* String id=request.getParameter("id");
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
String email = request.getParameter("email");
m.setId(id);
m.setPwd(pwd);
m.setName(name);
m.setEmail(email); */
MemberDAO memberDAO=new MemberDAO();
memberDAO.addMember(m);
List membersList = memberDAO.listMembers();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 목록창</title>
</head>
<body>
<table align="center" width="100%">
<tr align="center" bgcolor="#99ccff">
<td width="7%" >아이디</td>
<td width="7%">비밀번호</td>
<td width="5%" >이름</td>
<td width="11%" >이메일</td>
<td width="5%" >가입일</td>
</tr>
<%
if(membersList.size()==0){
%>
<tr>
<td colspan="5">
<p align="center"><b><span style="font-size:9pt;">
등록된 회원이 없습니다.</span></b></p>
</td>
</tr>
<%
}else{
for( int i = 0; i < membersList.size(); i++ ) {
MemberBean bean = (MemberBean) membersList.get(i);
%>
<tr align="center">
<td><%=bean.getId() %></td>
<td><%=bean.getPwd() %></td>
<td><%=bean.getName() %></td>
<td><%=bean.getEmail() %></td>
<td><%=bean.getJoinDate() %></td>
</tr>
<%
} // end for
} // end if
%>
<tr height="1" bgcolor="#99ccff">
<td colspan="5"></td>
</tr>
</table>
</body>
</html>
6. member5.jsp를 다음과 같이 작성합니다. <jsp:setProperty> 액션 태그에 param 속성을 생략하고 property 속성 이름만 지정하면 회원 가입창에서 전달받은 매개변수 중 같은 매개변수 값을 자동으로 설정해 줍니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*,sec01.ex01.*"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="m" class="sec01.ex01.MemberBean" scope="page"/>
<jsp:setProperty name="m" property="id" />
<jsp:setProperty name="m" property="pwd" />
<jsp:setProperty name="m" property="name" />
<jsp:setProperty name="m" property="email" />
<%
MemberDAO memberDAO=new MemberDAO();
memberDAO.addMember(m);
List membersList = memberDAO.listMembers();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 목록창</title>
</head>
<body>
<table align="center" width="100%">
<tr align="center" bgcolor="#99ccff">
<td width="7%" >아이디</td>
<td width="7%">비밀번호</td>
<td width="5%" >이름</td>
<td width="11%" >이메일</td>
<td width="5%" >가입일</td>
</tr>
<%
if(membersList.size()==0){
%>
<tr>
<td colspan="5">
<p align="center"><b><span style="font-size:9pt;">
등록된 회원이 없습니다.</span></b></p>
</td>
</tr>
<%
}else{
for( int i = 0; i < membersList.size(); i++ ) {
MemberBean bean = (MemberBean) membersList.get(i);
%>
<tr align="center">
<td><%=bean.getId() %></td>
<td><%=bean.getPwd() %></td>
<td><%=bean.getName() %></td>
<td><%=bean.getEmail() %></td>
<td><%=bean.getJoinDate() %></td>
</tr>
<%
} // end for
} // end if
%>
<tr height="1" bgcolor="#99ccff">
<td colspan="5"></td>
</tr>
</table>
</body>
</html>
7. member6.jsp를 다음과 같이 작성합니다. <jsp:setProperty> 액션 태그의 property 속성에 *를 지정하면 JSP 페이지에서 자동으로 매개변수 이름과 속성 이름을 비교한 후 같은 이름의 속성 이름에 전달된 값을 알아서 설정해 줍니다. 따라서 JSP나 HTML 페이지에서 전달된 데이터를 처리할 때 미리 매개변수 이름과 속성 이름을 동일하게 편리하게 사용할 수 있습니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*,sec01.ex01.*"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="m" class="sec01.ex01.MemberBean" scope="page"/>
<jsp:setProperty name="m" property="*" />
<%
MemberDAO memberDAO=new MemberDAO();
memberDAO.addMember(m);
List membersList = memberDAO.listMembers();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 목록창</title>
</head>
<body>
<table align="center" width="100%">
<tr align="center" bgcolor="#99ccff">
<td width="7%" >아이디</td>
<td width="7%">비밀번호</td>
<td width="5%" >이름</td>
<td width="11%" >이메일</td>
<td width="5%" >가입일</td>
</tr>
<%
if(membersList.size()==0){
%>
<tr>
<td colspan="5">
<p align="center"><b><span style="font-size:9pt;">
등록된 회원이 없습니다.</span></b></p>
</td>
</tr>
<%
}else{
for( int i = 0; i < membersList.size(); i++ ) {
MemberBean bean = (MemberBean) membersList.get(i);
%>
<tr align="center">
<td><%=bean.getId() %></td>
<td><%=bean.getPwd() %></td>
<td><%=bean.getName() %></td>
<td><%=bean.getEmail() %></td>
<td><%=bean.getJoinDate() %></td>
</tr>
<%
} // end for
} // end if
%>
<tr height="1" bgcolor="#99ccff">
<td colspan="5"></td>
</tr>
</table>
</body>
</html>
8. 마지막으로 member7.jsp를 다음과 같이 작성합니다. 회원 가입창에서 전달받은 회원 정보를 일단 <jsp:setProperty> 액션 태그를 이용해 useBean 속성에 저장한 후 <jsp:getProperty> 액션 태그를 이용해 useBean의 속성에 접근하여 값을 출력합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*, sec01.ex01.*" pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="m" class="sec01.ex01.MemberBean" scope="page"/>
<jsp:setProperty name="m" property="*" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 목록창</title>
</head>
<body>
<table align="center" width="100%">
<tr align="center" bgcolor="#99ccff">
<td width="7%" >아이디</td>
<td width="7%">비밀번호</td>
<td width="5%" >이름</td>
<td width="11%" >이메일</td>
</tr>
<tr align="center">
<td> <jsp:getProperty name="m" property="id" /> </td>
<td> <jsp:getProperty name="m" property="pwd" /> </td>
<td> <jsp:getProperty name="m" property="name" /> </td>
<td> <jsp:getProperty name="m" property="email" /> </td>
</tr>
<tr height="1" bgcolor="#99ccff">
<td colspan="5"></td>
</tr>
</table>
</body>
</html>
9. http://localhost:8090/pro13/memberForm.html로 요청하여 회원 가입창에 회원 정보를 입력 후 가입하기를 클릭합니다.

10. 그러면 전송된 회원 정보를 <jsp:getProperty> 액션 태를 이용해 출력됩니다.

마지막으로 <jsp:param> 액션 태그는 <include> 액션 태그와<forward> 액션 태스 사용 시 다른 jsp로 매개변수 값을 전송할 때 서사용합니다.
'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| JSP에서 표현 언어 사용 실습 (0) | 2025.12.15 |
|---|---|
| 표현 언어란? - 표현 언어에서 사용하는 자료형과 연산자 (0) | 2025.12.12 |
| 유즈빈 액션 태그를 이용한 회원 정보 조회 실습 (0) | 2025.12.03 |
| 자바 빈을 이용한 회원 정보 조회 실습 (0) | 2025.11.30 |
| 포워드 액션 태그 사용하기 (0) | 2025.11.27 |