오봉이와 함께하는 개발 블로그

JSP - 액션 태그(useBean, setProperty, getProperty) 본문

BE/JSP

JSP - 액션 태그(useBean, setProperty, getProperty)

오봉봉이 2021. 12. 30. 17:39
728x90

액션 태그

  • JSP 페이지 내에서 어떤 동작을 지시하는 태그
  • 기능
    • 어떤 동작 또는 액션이 일어나는 시점에 페이지와 페이지 사이에서의 제어 이동
    • 다른 페이지의 실행 결과를 현재 페이지에 포함
  • 종류
    • include
    • forward
    • useBean
    • setProperty
    • getProperty

자바 빈 관련 액션 태그

useBean 액션 태그 : <jsp:useBean>

  • 자바 빈(JavaBeans)
    • DTO / VO와 같은 개념
    • 데이터를 다루기 위해 자바로 작성되는 소프트웨어 컴포넌트로 재사용 가능
    • 입력 폼의 데이터와 데이터베이스의 데이터 처리 부분에서 활용
    • 클래스로 만들어짐
      • 멤버 필드(변수)로 속성(Property)이 있고
      • 멤버 메소드로 Getter / Setter 메소드 포함
      • setXXX() : 프로퍼티에 값 저장
      • getXXX() : 프로퍼티 값 반환
    • 속성 접근 제이자는 private
    • Getter / Setter 메소드와 클래스는 public
  • 자바 빈을 JSP 페이지에서 사용할 때 사용
  • <jsp:useBean id="빈 이름" class="클래스" scope="유효범위" />
    • <jsp:useBean id="student" class="sec01.StudentBean" scope="page" />
    • id : 자바빈 이름
    • class : 패키지명을 포함한 클래스 이름
    • scope : 자바빈의 유효 범위
      • page : 생성된 페이지 내에서만 사용 가능. (디폴트)
      • request : 요청이 수행되는 페이지에서만 사용 가능
      • session : 객체가 생성된 세션에서 수행되는 페이지에서 사용 웹 브라우저의 생명주기와 동일하게 사용 가능
      • application : 객체가 생성된 애플리케이션에 포함된 페이지에서 사용 웹 애플리케이션 생명주기와 동일하게 사용 가능

setProperty 액션 태그 : <jsp:setProperty>

  • 프로퍼티(변수) 값을 세팅할 때 사용 (setter)
  • 데이터 저장
  • <jsp:setProperty name=”빈 이름” property=”속성이름” value=”속성값” />
    • <jsp:setProperty name=”student” property=stdNo value=2021001 />

getProperty 액션 태그 : <jsp:getProperty>

  • 프로퍼티(변수) 값을 얻어올 때 사용 (getter)
  • <jsp:getProperty name=”빈 이름” property=”속성이름”>
    • <jsp:getProperty name=”student” property=”stdNo”>

자바 빈 액션 태그 예제 - StudentBean.java, studentBean.jsp

  • 빈 클래스 : StudentBean.java (DTO/VO와 동일)
    • Getters / Setters
  • studentBean.jsp
    • useBean 액션 태그
    • setProperty 액션 태그
    • getProperty 액션 태그
package main;

public class StudentBean {
    private String stdNo;
    private String stdName;
    private String stdPhone;
    private String stdAddress;
    private String stdYear;

    public String getStdNo() { 
        return stdNo; 
    }
    public void setStdNo(String stdNo) {
        this.stdNo = stdNo;
    }
    public String getStdName() {
        return stdName;
    }
    public void setStdName(String stdName) {
        this.stdName = stdName;
    }
    public String getStdPhone() {
        return stdPhone;
    }
    public void setStdPhone(String stdPhone) {
        this.stdPhone = stdPhone;
    }
    public String getStdAddress() {
        return stdAddress;
    }
    public void setStdAddress(String stdAddress) { 
        this.stdAddress = stdAddress; 
        }
    public String getStdYear() {
        return stdYear;
    }
    public void setStdYear(String stdYear) {
        this.stdYear = stdYear;
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="student" class="main.StudentBean" scope="page"></jsp:useBean>
<html>
  <head>
      <title>자바 빈 액션 태그</title>
  </head>
  <body>
    <h3>빈 속성 값 설정(setProperty)</h3>
    <jsp:setProperty name="student" property="stdNo" value="2021001" />
    <jsp:setProperty name="student" property="stdName" value="홍길동" />
    <jsp:setProperty name="student" property="stdPhone" value="010-1111-1111" />
    <jsp:setProperty name="student" property="stdAddress" value="서울시 종로구" />
    <jsp:setProperty name="student" property="stdYear" value="4" />

    <h3>빈 속성 값 출력(getProperty)</h3>
    학번 : <jsp:getProperty name="student" property="stdNo"/> <br>
    이름 : <jsp:getProperty name="student" property="stdName"/> <br>
    연락처 : <jsp:getProperty name="student" property="stdPhone"/> <br>
    주소 : <jsp:getProperty name="student" property="stdAddress"/> <br>
    학년 : <jsp:getProperty name="student" property="stdYear"/>

    <h3>빈 속성 값 출력(Getter 사용)</h3>
    학번 : <%= student.getStdNo() %> <br>
    이름 : <%= student.getStdName() %> <br>
    연락처 : <%= student.getStdPhone() %> <br>
    주소 : <%= student.getStdAddress() %> <br>
    학년 : <%= student.getStdYear() %> <br>
  </body>
</html>
728x90
Comments