12-3. 빈을 이용한 JSP 파일 예제
◆ 액션태그? 빈태그?
JSP에는 특별한 행동을 위해 내부적으로 지원하는 태그가 있다. 예를 들어 다른 페이지를 포함한다든지(jsp:include...) 다른 페이지로 이동한다든지(jsp:foward..) 하는 태그들이 있다. 이러한 태그들을 액션(행동)을 가진다고 하여 액션태그라고 한다. 이러한 태그 중 특별히 빈과 관련된 태그를 빈 태그라고 한다.
빈 관련 태그 | 내용 |
<jsp:useBean id = "..." class = "..." scope = "..."/> | 빈을 생성한다. |
<jsp:setProperty name = "..." property = "..." value = "..."/> | 빈에 값을 저장한다. |
<jsp:getProperty name = "..." property = "..."/> | 빈의 값을 가져온다. |
JSP에서 빈을 사용하기 위해 우리가 알아야 할 것은 위의 3가지 태그뿐이다. 태그의 이름에서도 알 수 있듯이 빈을 사용함을 선언하고, 빈에 값을 넣고, 담긴 값을 가져오는 것으로 구성되어 있다.
<빈을 이용한 JSP 파일 예제>
<%@ page contentType="text/html;charset=EUC-KR" %> - ①
<jsp:useBean id="test" class="SimpleBean" scope="page" /> - ②
<jsp:setProperty name="test" property="message" value="빈을 알아보자!" /> - ③
<html>
<body>
<h1>간단한 빈 프로그래밍</h1>
<br/>
Message: <jsp:getProperty name="test" property="message" /> - ④
</body>
</html>
① : 페이지 지시자로서 현재 페이지의 타입과 페이지의 인코딩을 지시하고 있다.
② : <jsp:useBean id="빈이름" class="빈 클래스" scope="범위지정" />
빈을 사용하기 위해 필요한 태그이다. class 속성은 빈 클래스의 이름을 말한다. 만일 패키지로 구성되어 있다면 당연히 패키지명.클래스명으로 호출해야 한다. 이렇게 생성된 빈을 호출하려면 빈의 이름이 필요하다. 왜냐하면 빈의 이름을 호출하여 정보를 저장 혹은 가져오도록 해야 하기 때문이다. 그래서 이러한 이름은 id라는 속성으로 지정해 준다. 자바프로그래밍에서는 객체명이라고 할 수 있다.
위의 예제에서는 SimpleBean을 호출하고 있으며, 이 빈의 이름을 test라고 해 두었다. 이름은 작성자가 편한 대로 정해주어도 된다. 마지막으로 scope는 현재 빈이 살아있는 영역을 말한다. 예제에서는 page라고 해 두었는데 현재 이 simpleBean.jsp 파일을 호출하는 동안에만 test 빈이 살아 있다는 뜻이다.
③ : <jsp:setProperty name = "빈 이름" property="빈의 변수 이름" value="저장할 값" />
빈을 생성하였다면 이제 빈에 정보값을 넣을 차례이다. 우리는 이미 useBean을 이용하여 test라는 빈을 생성해 두었다. 따라서 test라는 빈의 변수와 message에 정보를 저장할 것이다. 이를 위해 setProperty 태그를 이용하여 저장하게 된다. setProperty 태그에서 name은 이미 생성된 빈의 이름을 지정해주어야 한다. 또한 property는 빈이 어떤 빈의 변수(프로퍼티)에 값을 저장할지를 지정해주게 된다. 그다음 value에서는 저장될 값을 입력하게 된다. 예제에서는 test라는 빈의 message변수(프로퍼티)에 "빈을 알아보자!"라는 문자열을 저장하도록 하고 있다. 실질적으로 JSP 컨테이너는 우리가 만들어둔 setMessage()메서드를 이용하여 "빈을 알아보자!"라는 값을 저장하게 되는 것이다.
④ : <jsp:getProperty name="빈이름" property="빈의 변수이름" />
빈을 생성한 후 정보를 저장하였다면 이제 정보 값을 가져올 수 있다. 빈의 정보를 가져오기 위해서는 getProperty 태그를 사용한다. getProperty에서도 마찬가지로 이미 생성된 빈의 이름을 name 속성으로 지정해주어야 한다. 그리고 property를 지정해서 원하는 정보를 담고 있는 변수(프로퍼티)를 지정해주게 된다. 예제에서는 test라는 빈의 message변수(프로퍼티)에 있는 정보를 가져와 화면에 출력하도록 하고 있다.
※ 주의 - id와 name
빈 태그를 작성하다 보면 많이 실수하는 부분 중 하나가 빈을 생성할 때 빈의 이름을 id라는 속성으로 지정해주는 반면에 이렇게 생성된 빈을 사용할 때는 name이라는 속성으로 지정해주게 되는 점이다.
생성할 때는 id, 사용할 때는 name이라는 점을 꼭 기억하자.
'IT || 개발공부' 카테고리의 다른 글
[JDBC] JDBC (0) | 2023.02.19 |
---|---|
[JSP] 자바 빈즈에 대한 궁금증 (자바빈즈) (0) | 2023.02.18 |
[Java] 빈을 이용한 프로그래밍 (자바빈즈 / 자바 매개변수) (0) | 2023.02.15 |
[Java] 자바빈즈 만들기 (자바빈즈 작성 방법 / 접근제한자 / 자바 구조) (0) | 2023.02.11 |
[Java] 자바빈즈 (JavaBeans) (0) | 2023.02.08 |
댓글