<jsp:setProperty>
☞ <jsp:useBean>태그로 lookup한 객체(Attribute)의 property에 값을 설정하는 태그
☞ Lookup한 Attribute의 setter 메소드를 호출하여 값을 설정한다.
◎ 명시적인 값을 설정
◎ 요청 파라미터로 넘어온 값을 설정
☞ 속성
◎ name : 값을 설정할 bean의 이름. useBean의 id값
◎ property : 값을 설정할 property명. (setter 메소드에서 set을 제외한 이름)
◎ value : 설정할 값
◎ param : 요청할 파라미터의 값을 설정할 경우, 요청파라미터의 이름
☞ 요청파라미터로 넘어온 값을 설정할 경우 property의 이름과 요청파라미터의 이름이 동일한 경우 param을 생략할 수 있다.
☞ 예)
<jsp:setProperty name="mto" property="id" value="myid" />
-> 의미
mto.setId("myid");
<jsp:setProperty name="mto" property="name" param="p_name"/>
-> 의미
mto.setName(request.getParameter("p_name"))
req2.jsp
☞ folder : WebContent/actiontag
소스보기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
고객 정보 등록 - SetProperty테스트
<form action="/myjsp/actiontag/register_customer.jsp" method="post">
ID : <input type="text" name="id"><br>
Password : <input type="password" name="password"><br>
이름 : <input type="text" name="name"><br>
나이 : <input type="text" name="age"><br>
이메일 : <input type="text" name="email"><br>
<input type="submit" value="등록">
</form>
</body>
</html>
register_customer.jsp
☞ folder : WebContent/actiontag
☞ setProperty를 통해서 name 속성에 설정된 session_cto객체를 사용하고 session_cto객체가 가지고 있는 인스턴스 멤버의 이름인 id, password, name, email, age를 property속성에 대입하여 값을 조회 할 수 있다.
소스보기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="session_cto" class="myjsp.dto.CustomerDTO" scope="session"/>
<jsp:setProperty name="session_cto" property="*"/> <%-- 가장 많이 쓰이는 형태--%>
<%--
<jsp:setProperty name="session_cto" property="id" param="id"/>
<jsp:setProperty name="session_cto" property="password" param="password"/>
<jsp:setProperty name="session_cto" property="name" param="name"/>
<jsp:setProperty name="session_cto" property="email" param="email"/>
<jsp:setProperty name="session_cto" property="age" param="age"/>
--%>
<%-- property="id"와 param="id"가 같기때문에 param은 생략 가능 --%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
Session Scope 결과<br>
ID : <%= session_cto.getId() %><br>
Password : <%= session_cto.getPassword() %><br>
이름 : <%= session_cto.getName() %><br>
나이 : <%= session_cto.getAge() %><br>
이메일 : <%= session_cto.getEmail() %><br>
</body>
</html>