<useBean> 태그JSP(JavaServer Pages)에서 사용하는 액션 태그(Action Tag) 중 하나.
자바빈(JavaBean) 객체를 JSP 페이지 내에서 사용할 수 있도록 생성하거나 불러오는 역할을 한다.
<jsp:useBean id="beanName" class="패키지.클래스명" scope="page|request|session|application" />
| 속성 | 설명 |
|---|---|
id | JSP에서 사용할 JavaBean의 이름. |
class | 사용할 JavaBean의 전체 클래스 이름(패키지 포함). |
scope | 해당 Bean의 유효 범위를 지정한다. 기본값은 page. - page: 현재 페이지에서만 사용- request: 하나의 요청(request) 범위- session: 한 세션 동안 유지- application: 애플리케이션 전체에서 공유 |
<jsp:useBean id="user" class="com.example.User" scope="session" />
<jsp:setProperty name="user" property="name" value="홍길동" />
<jsp:getProperty name="user" property="name" />
| 태그 | 역할 |
|---|---|
<jsp:useBean> | 자바빈을 생성하거나 참조한다. |
<jsp:setProperty> | 자바빈의 필드 값을 설정한다. |
<jsp:getProperty> | 자바빈의 필드 값을 가져와 출력한다. |
mvc1 프로젝트의 이 부분을 useBeans 액션태그로 바꾸면,
<c:when test="${action eq 'join'}">
<%
// useBeans 액션태그
dto.setUserid(request.getParameter("userid"));
dto.setUserpw(request.getParameter("userpw"));
dto.setName(request.getParameter("name"));
dto.setHp(request.getParameter("hp"));
dto.setEmail(request.getParameter("email"));
dto.setGender(request.getParameter("gender"));
dto.setSsn1(request.getParameter("ssn1"));
dto.setSsn2(request.getParameter("ssn2"));
dto.setZipcode(request.getParameter("zipcode"));
dto.setAddress1(request.getParameter("address1"));
dto.setAddress2(request.getParameter("address2"));
dto.setAddress3(request.getParameter("address3"));
boolean success = dao.insertMember(dto);
request.setAttribute("success", success);
%>
<c:choose>
<c:when test="${success}">
<h2>회원가입 성공</h2>
<p><a href="login.jsp">로그인</a></p>
</c:when>
<c:otherwise>
<h2>회원가입 실패</h2>
<p><a href="join.jsp">회원가입</a></p>
</c:otherwise>
</c:choose>
</c:when>
아래와 같이 바꿀 수 있다고 한다.
<c:when test="${action eq 'join'}">
<!-- 1. DTO 객체 생성 -->
<jsp:useBean id="dto" class="your.package.MemberDTO" scope="page" />
<!-- 2. 폼 데이터 자동 주입 -->
<jsp:setProperty name="dto" property="*" />
<!-- 3. DAO 객체 생성 -->
<jsp:useBean id="dao" class="your.package.MemberDAO" scope="page" />
<%
// 4. 실제 DB 처리
boolean success = dao.insertMember(dto);
request.setAttribute("success", success);
%>
<!-- 5. 처리 결과 출력 -->
<c:choose>
<c:when test="${success}">
<h2>회원가입 성공</h2>
<p><a href="login.jsp">로그인</a></p>
</c:when>
<c:otherwise>
<h2>회원가입 실패</h2>
<p><a href="join.jsp">회원가입</a></p>
</c:otherwise>
</c:choose>
</c:when>
| 태그 | 설명 |
|---|---|
<jsp:useBean> | 자바 클래스를 JSP 내에서 객체로 생성 |
<jsp:setProperty name="dto" property="*"/> | 폼에서 전송된 request 파라미터들을 자동으로 dto의 필드에 주입합니다. 이름이 일치해야 합니다. |
request.setAttribute("success", success); | JSTL에서 사용할 수 있도록 success를 request scope에 저장 |
DTO 클래스(MemberDTO)는 getter/setter가 잘 정의되어 있어야 한다.
<jsp:setProperty property="*"/>는 <input name="..."> 값과 DTO의 필드 이름이 일치할 때만 동작한다.
DAO와 DTO의 패키지 경로 정확히 작성해야 한다. (예: com.example.model.MemberDTO)