기본 생성자 객체 생성은 내장된 액션 태그를 활용하여 객체 생성 및 파라미터 입력 후 화면 구성이 가능합니다.
// 선언부를 활용한 객체 생성 및 화면 출력
<%
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>
<※ 화면구현은 다음과 같습니다.>
위의 예제에서 사용된 jsp:useBean은 간단하게 설명하자면 Attribute에 저장된 자바 객체를 꺼내거나 보관소에 저장된 객체가 없다면 새로 생성하여 해당 보관소에 저장하기 위해 사용됩니다.이 때 jsp:useBean에서 사용되는 문법에 총 3가지의 속성이 사용됩니다.
id는 생성되는 객체의 이름 및 속성(attribute) 의 이름입니다.일종의 변수이름으로 활용된다고 생각하시면 됩니다. 위의 구문을 보시면 useBean에서 id를 선언한 뒤 setProperty 과정에서 name에 해당 id를 넣어 진행하시는 것을 보실 수 있으실 겁니다.
scope는 생성된 객체를 저장할 내장 객체 범위입니다.기본값이 pageContext ('page'로 표기) 이기 때문에 해당 구문 생략시 기본값이 적용되게 됩니다.
class는 객체에 이용할 패키지 및 클래스의 이름입니다.scope에서 지정한 보관소에서 객체를 찾지 못할 경우 해당 값을 통해 인스턴스를 생성하며 생성된 객체는 scope 보관소에 자동으로 저장되게 됩니다.