Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP에서 jsp:setProperty 액션으로 자바빈 속성 설정하는 방법

JSP setProperty 액션이란?

JSP에서 setProperty 액션은 자바빈(JavaBean)의 속성값을 설정하는 역할을 합니다. 단, 이 액션을 사용하기 전에 해당 빈(Bean)이 반드시 먼저 정의되어 있어야 합니다. setProperty 액션에는 크게 두 가지 사용 방식이 있습니다.

방법 1: jsp:useBean 태그 외부에 배치

jsp:setPropertyjsp:useBean 요소 뒤에 위치시키되, 그 외부에 두는 방식입니다.

<jsp:useBean id = "myName" ... />
...
<jsp:setProperty name = "myName" property = "someProperty" .../>

이 경우에는 새로운 빈이 생성되었는지, 아니면 기존 빈이 재사용되었는지와 관계없이 jsp:setProperty가 항상 실행됩니다.

방법 2: jsp:useBean 태그 본문 내부에 배치

두 번째 방식은 jsp:useBean 요소의 본문(body) 안에 jsp:setProperty를 포함시키는 것입니다.

<jsp:useBean id = "myName" ... >
...
<jsp:setProperty name = "myName" property = "someProperty" .../>
</jsp:useBean>

반면 이 경우에는 새로운 객체가 실제로 인스턴스화되었을 때만 실행되고, 기존 객체를 찾아 재사용한 경우에는 실행되지 않습니다.

setProperty 액션의 주요 속성

다음 표는 setProperty 액션과 함께 사용되는 속성들을 정리한 것입니다.

번호속성 및 설명
1name
속성을 설정할 대상 빈을 지정합니다. 해당 빈은 반드시 사전에 정의되어 있어야 합니다.
2property
설정하고자 하는 속성을 나타냅니다. 값으로 "*"를 지정하면, 빈의 속성 이름과 일치하는 모든 요청 파라미터가 자동으로 해당 setter 메서드에 전달됩니다.
3value
지정된 속성에 할당할 값입니다. 만약 파라미터 값이 null이거나 파라미터 자체가 존재하지 않으면, setProperty 액션은 무시됩니다.
4param
속성이 값을 받아올 요청 파라미터의 이름을 지정합니다. value와 param은 동시에 사용할 수 없지만, 둘 다 생략하는 것은 가능합니다.

실습 예제

먼저 예제에서 사용할 테스트 빈(TestBean)을 정의해 보겠습니다.

/* 파일명: TestBean.java */
package action;

public class TestBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}

위 코드를 컴파일하여 생성된 TestBean.class 파일을 C:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\action 폴더에 복사하고, CLASSPATH 환경 변수도 이 폴더 경로로 설정해 주세요.

이제 main.jsp 파일에 아래 코드를 작성합니다. 이 JSP 페이지는 빈을 로드한 후 간단한 문자열 파라미터를 설정(set)하고 가져오기(get)합니다.

<html>
<head>
<title>Using JavaBeans in JSP</title>
</head>
<body>
<center>
<h2>Using JavaBeans in JSP</h2>
<jsp:useBean id = "test" class = "action.TestBean" />
<jsp:setProperty name = "test" property = "message" value = "Hello JSP..." />
<p>Got message....</p>
<jsp:getProperty name = "test" property = "message" />
</center>
</body>
</html>

main.jsp에 접속하면 다음과 같은 결과가 화면에 출력됩니다.

Using JavaBeans in JSP


Got message....
Hello JSP...