ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바빈 , <jsp:useBean> 액션 태그
    JSP 2023. 3. 22. 10:32

    자바빈

     : 속성(데이터) , 변경 이벤트 , 객체 직렬화를 위한 표준

    -> 회원의 정보를 받아올 때 정보에 대한 제약을 주기 위함

     


    1. 자바빈 클래스 생성

     : JSP 프로젝트 속의 Java Resources 폴더에 MemberInfo 파일을 생성해보자.

     - 패키지 생성 후, MemberInfo 파일을 만들고 원하는 데이터의 저장공간을 생성했다.

    Source 탭 -> Generate Getter and Setter 를 클릭해서 Getter와 Setter를 자동 생산할 수 있다.

    생성된 getter/setter


    2. <jsp:useBean> 액션태그를 사용해 객체 생성

     : 자바빈 객체를 지정할 때 액션태그의 기본 구문

    <jsp:useBean id="빈이름" class="자바빈클래스이름" scope="범위" />

     id : JSP 페이지에서 자바빈 객체에 접근할 때 사용할 이름을 지정한다.

    class : 패키지 이름을 포함한 자바빈 클래스의 완전한 이름을 입력한다.

    scope : 자바빈 객체를 저장할 영역을 지정한다. page, request, session, application 중 하나를 값으로 갖고, 기본 값은 page이다.

     

    객체 생성 예제

     - 자바빈 생성 예제에서 만들었던 MemberInfo를 객체로 만들어서 request 기본 객체에 저장한다.

    또한, Id 와 Name 정보를 set 함수를 이용해 자바빈에 저장한다.

     - useObject를 직접 실행하면, request 기본 객체에 member 속성이 존재하지 않기 때문에, 새로운 MemberInfo 클래스의 객체를 생성한다.

    이 경우 객체의 데이터 초기화를 하지 않았기 때문에 Name과 ID 에 null 값이 나온다.

     

     - 액션 태그의 class 속성 대신에 type을 넣을 수도 있다.

    <jsp:useBean id="빈이름" type="자바빈클래스이름" scope="scope" />
    -> type 속성을 사용하면 지정한 영역에 이미 객체가 존재한다고 가정한다
    
    위의 코드를 풀어서 해석하면 다음과 같다
    MemberInfo member = (MemberInfo)request.getAttribute("member");
    if (member == null) {
    	// 에러를 발생시킨다.
    }
    
    즉, request 기본 객체의 member 속성에 이미 Memberinfo 객체가 존재한다고 가정하며,
    존재하지 않는다면 MemberInfo 객체를 새로 생성하지 않고 에러를 발생시킨다.

     


    3. <jsp:setProperty> 와 <jsp:getProperty>

     : 해당 자바빈 객체의 프로퍼티를 지정하거나 가져올 수 있다.

    set 프로퍼티
    <jsp:setProperty name="자바빈" property="프로퍼티이름" value="값" />
    -> 프로퍼티의 값을 지정할 수 있다.
    
    <jsp:setProperty name="자바빈" property="프로퍼티이름" param="파라미터 명" />
     -> value 속성 대신 param 속성을 사용할 경우, 파라미터의 값을 프로퍼티의 값으로 지정한다
     
     <jsp:setProperty name="자바빈" property="*" />
     -> 각 프로퍼티의 값을 같은 이름을 갖는 파라미터의 값으로 지정한다
     ( 파라미터와 프로퍼티를 한번에 연결할 수 있다. )
    
    
    get 프로퍼티
    <jsp:getProperty name="자바빈" property="프로퍼티이름" />

     

    set, getProperty 예제)

     - form 태그의 action 속성으로 processJoiing.jsp 로 데이터를 보내고 이동한다.

     - setProperty의 property = "*" 로 파라미터의 이름이 같은 요소들끼리 쉽게 데이터를 저장했다.

     

     - request.setCharacterEncoding("utf-8"); 로 form으로 부터 받은 한글 텍스트가 깨지지 않게 만들었다.

    'JSP' 카테고리의 다른 글

    세션 (session)  (0) 2023.03.22
    쿠키 (cookie)  (0) 2023.03.22
    <jsp:forward> 액션 태그 사용법  (0) 2023.03.21
    include 디렉티브  (0) 2023.03.21
    <jsp:param> 페이지에 파라미터 추가  (0) 2023.03.21
Designed by Tistory.