JSP 태그 (4)

손영태·2022년 2월 3일
0

자바빈즈

  • useBean
  • setProperty
  • getProperty

자바빈즈란?

JSP 자바빈즈란 JSP의 표준 액션태그로 자바 클래스를 접근 할 수 있는 태그 이다. 한마디로 다른 자바 클래스와 마찬가지로 자바객체라고 할 수 있다. 클래스 내에 있는 메소드와 변수를 사용 할 수 있다.

useBean

useBean은 자바로 따지면 '클래스명 변수명 = new 클래스명()'으로 취급 할 수 있다.
기본 형식은 다음과 같다.

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

여기서 id는 현재 JSP페이지 내에서 자바빈객체를 접근할때 사용할 이름으로 자유롭게 설정한다. class는 내가 만든 클래스나 원래 자바에 있는 클래스 등 내가 사용할 클래스를 삽입한다. scope는 이 객체가 저장될 영역을 지정해주는데 범위로는 page, request, session, application 중 하나로 설정 할 수 있다. scope는 생략할 수 있는데 생략할 경우 page가 기본 값이다.

예시1

<jsp:useBean id="date" class="java.util.Date" />

<p><%=date %></p>

이 경우에 자바와 같이 Date형식을 표시해준다.
자바로 표현은 아래와 같고 위와 동일 하다

<% Date date = new Date(); %>
<p><%=date %></p>

예시2
useBean.jsp

<jsp:useBean id="bean" class="ch04.com.dao.Calculator"/>
	<%
		int m = bean.process(5);
		out.print("5의 3제곱 : " + m);
	%>

Calculator.java

public class Calculator {
	public int process(int n) {
		return n * n * n;
	}
}

이 경우 내가 만들어준 Calculator를 자바빈 객체로 생성하여 호출해 사용했다. 결과는 생각한 것 처럼 125가 나온다.

예시3
메소드 사용하기
useBean.jsp

<jsp:useBean id="person" class="ch04.com.dao.Person" scope="request"/>
	<p>아이디 : <%=person.getId() %></p>
	<p>이름 : <%=person.getName() %></p>

Person.java

public class Person implements Serializable{
	//필드
	private int id = 20181014;
	private String name = "개똥이";
	//기본 생성자(생략가능)
	public Person() {}
	//getter/setter메소드
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

getter메소드를 사용하여 불러올수 있다.
결과로는

아이디 : 20181014
이름 : 개똥이

이렇게 출력이된다.

useBean.jsp에다가

<%
	person.setId(20182005); // 아이디에 새로운 값을 넣어줌
	person.setName("가나다"); // name필드에 새로운 값을 넣어줌
%>

위 코드를 삽입하여 Setter메소드를 사용할 경우 출력하면 바뀐것을 볼 수 있다.

setProperty

setProperty는 혼자 사용되지 않는다. setProperty는 위에서 설명했던 useBean 액션 태그와 같이 사용이 된다.
간단하게 설명하면 자바의 Setter메소드와 같다.

사용형식은 아래와 같다.

<jsp:setProperty name="자바빈즈 객체명" property="값을 넣을 변수 명" value="넣을 값" />

** 잠깐 상식
useBean의 객체를 호출해 줄때 <%= %>을 사용하여 호출 해도되지만 ${객체명.변수(메소드)}로 선언해도됨

getProperty

setProperty와 마찬가지로 단독으로 사용되지 않고 useBean선언후 사용이 된다.

사용형식

<jsp:getProperty name="자바빈즈 객체명" property="값을 넣을 변수 명" />

**Getter메소드와 같은 작용을 하는데 실무에서는 불편해서 그런지 잘 사용하지 않는다고 한다. 이런게 있다는 것만 알아두도록 하자.

0개의 댓글