동적 콘텐츠 개발을 위해 자바 코드를 사용하여 자바 클래스 로직을 작성시
좋은 객체 지향의 설계 SOLID 원칙의 단일 책임 원칙(SRP) 따라
JSP 페이지 화면을 표현하기 위한 계산식이나 자료 처리를 담당하는
자바 코드를 따로 분리해서 작성하는 것이 바람직하다.
이는 통상적으로 자바 빈즈 개념을 사용하는데 
JSP에서는 자바 빈즈 액션 태그를 사용해 구현 하는 것이 가능하다.  

 

 

자바 빈즈 액션 태그 권장 사양 (필수가 아니다)

package action.example;

public class Person {
	private String id="1971343";
	private String name="임준식";
	
	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
  • 클래스는 java.io.Serializable 인터페이스를 구현해야 한다.
  • 인수가 없는 기본 생성자가 있어야 한다.
  • 모든 멤버 변수인 프로퍼티는 private 접근 지정자로 설정해야 한다.
  • 모든 멤버 변수인 프로퍼티는 getter/setter() 메소드가 존재해야 한다.

<자바 빈즈 액션 태그 사용> useBean

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="person" class="action.example.Person"
	scope="request"></jsp:useBean>
	<jsp:setProperty property="id" name="person" value="20000212"/>
	<jsp:setProperty property="name" name="person" value="이름"/>
	<p>아이디: <jsp:getProperty property="id" name="person"/></p>
	<p>이름: <jsp:getProperty property="name" name="person"/></p>
	
</body>
</html>
  • id: 자바빈즈 식별 이름
  • class: 패키지 이름을 포함한 자바빈즈 이름, 자바빈즈는 인수가 없는 기존 생성자가 있어야 하며 추상 클래스로는 사용이 불가능 하다.
  • scope: 자바빈즈가 저장되는 영역을 설정, page(기본 값), request, session, application 하나 값 사용
  • <jsp:setProperty property=" " name=" " value=" "/>: 자바 빈즈에 데이터 저장
    • property: 자바 빈즈 프로퍼티 이름 
    • name: 자바 빈즈 식별을 위한 이름
    • value: 변경할 자바빈즈 프로퍼티의 값
  • <jsp:getProperty property="name" name="person"/>: 자바 빈즈에서 데이터 가져오기
    • property: 자바 빈즈 프로퍼티 이름
    • name: 자바 빈즈 식별을 위한 이름

 

'Development > JSP' 카테고리의 다른 글

파일 업로드  (0) 2023.05.09
내장 객체(Implicit Object)  (0) 2023.04.19
액션 태그  (0) 2023.04.19
서블릿과 JSP  (0) 2023.04.19
폼 (form) 태그  (0) 2023.04.17

+ Recent posts