5. JSP - jsp:useBean

한승록·2023년 5월 22일
0

JSP 기초

목록 보기
5/9
post-thumbnail
기본 생성자 객체 생성은 내장된 액션 태그를 활용하여 객체 생성 및 파라미터 입력 후 화면 구성이 가능합니다.

	// 선언부를 활용한 객체 생성 및 화면 출력
	<%
        Ex01DTO dto = new Ex01DTO();

        dto.setName(request.getParameter("name"));
        dto.setAge(Integer.parseInt(request.getParameter("age")));

        pageContext.setAttribute("dto", dto);
    %>
	// useBean을 통한 객체 생성
    
    <%-- 기본 생성자 객체 생성 --%>
    <jsp:useBean id="dto2" class="ex01.Ex01DTO" scope="request"/>
    
    <%-- 해당 객체에 데이터를 전달 --%>
    <jsp:setProperty property="name" name="dto2"/>
    <jsp:setProperty property="age" name="dto2"/>


<fieldset>
	<legend>test</legend>
	
	<h3>이름 : ${dto.name }</h3>
	<h3>나이 : ${dto.age }</h3>
	<h3>dto는 pageContext.setAttribute를 수행하지 않으면 출력되지 않는다</h3>
	<br>
    
    <h3>이름 : ${dto2.name }</h3>
	<h3>나이 : ${dto2.age }</h3>
	<h3>dto2는 useBean 태그를 이용하여 자동으로 attribute에 저장된다</h3>
	<br>
</fieldset>

<※ 화면구현은 다음과 같습니다.>


1. jsp:useBean 속성

위의 예제에서 사용된 jsp:useBean은 간단하게 설명하자면 Attribute에 저장된 자바 객체를 꺼내거나 보관소에 저장된 객체가 없다면 새로 생성하여 해당 보관소에 저장하기 위해 사용됩니다.
이 때 jsp:useBean에서 사용되는 문법에 총 3가지의 속성이 사용됩니다.


1) id

id는 생성되는 객체의 이름속성(attribute) 의 이름입니다.
일종의 변수이름으로 활용된다고 생각하시면 됩니다. 위의 구문을 보시면 useBean에서 id를 선언한 뒤 setProperty 과정에서 name에 해당 id를 넣어 진행하시는 것을 보실 수 있으실 겁니다.


2) scope

scope는 생성된 객체를 저장할 내장 객체 범위입니다.
기본값이 pageContext ('page'로 표기) 이기 때문에 해당 구문 생략시 기본값이 적용되게 됩니다.



3) class

class는 객체에 이용할 패키지클래스의 이름입니다.
scope에서 지정한 보관소에서 객체를 찾지 못할 경우 해당 값을 통해 인스턴스를 생성하며 생성된 객체는 scope 보관소에 자동으로 저장되게 됩니다.
이러한 역할을 수행하기 때문에 class 속성이 존재하지 않는다면 객체를 생성할 수 없게 됩니다.
profile
개발 학습

0개의 댓글