2017 - 09 - 26 (화)
기본사항 정리
1 . JAVA BEAN
▶ JAVA BEAN : JSP에서 자바빈 클래스는 데이터를 저장하는 필드(변수에 들어갈 값), 데이터를 읽어올 때 사용되는 메서드, 값을 저장할 때 사용하는메서드로 구성.(JSP 페이지에서 데이터를 보여줄 때 이 데이터를 자바빈 클래스에 담아서 보내준다. User 객체를 생성해서 이 객체를 활용하는 것 처럼)
[ 단순히 자바 클래스이다. 자바빈 클래스는 Getter/Setter를 가지고 있으며 (전날 풀었던 예제 중 User클래스 처럼) 몇몇 특징이 있다. ]
- 특징 1 : 프로퍼티가 있다. (User 클래스의 멤버변수를 생각하면 좋을 것이다.)
- 특징 2 : 프로퍼티 앞에 get과 set을 붙여 사용하는데 프로퍼티가 Boolean 타입일 경우 is를 붙일 수 있다.
2 . JAVA BEAN 활용 액션태그
▶ jsp:useBean 액션태그 : JSP 페이지에서 사용할 자바빈 객체를 지정할 때 사용한다.
id 값에는 JSP 페이지에서 자바빈 객체 (User 객체)에 접근할 때 사용할 임의의 이름 지정.
class 값에는 패키지 이름을 포함한 자바빈 클래스의 완전한 이름
scope 에는 자바빈 객체를 저장할 영역을 지정한다. default는 page이다. (20일날 포스팅한 기본객체 영역 확인하자. )
<%@ page contentType = "text/html; charset=utf8" %>
<jsp:useBean id = "user" scope = "request" class = "com.codechobo.User"/>
<%
user.setId("shj7242");
user.setName("신희준");
%>
<jsp:forward page="/sendObject.jsp"/>
user 라는 이름의 객체를 하나 생성하여 request 기본객체에 저장한다. 이 user 객체의 Id는 shj7242 / Name 은 "신희준" 으로하여 user 속성에 저장한 뒤 request 객체에 담아 sendObject로 보낸다.
<%@ page contentType = "text/html; charset=utf8" %>
<jsp:useBean id = "user" scope = "request" class = "com.codechobo.User"/>
<%
String cid = user.getId()
String cname = user.getName()
%>
<jsp:forward page="/sendObject.jsp"/>
위와 같이 request객체 담겨진 user 속성의 id , name 값들을 cid, cname 변수에 저장.
* useBean 액션태그의 class 속성대신 type 를 사용할 수 있다.(type 속성을 사용하면 지정한 scope에 이미 객체가 존재한다고 가정)
▶ jsp:setProperty / jsp:getProperty : setProperty 액션 태그는 자바빈 객체의 Property(속성)의 값을 변경할 수 있다.
getProperty 액션 태그는 자바빈 객체의 Property(속성)의 값을 가져온다.
request.setAttribute("속성","값") / request.getAttribute("속성") 와 매우 유사해 보인다.
setProperty 액션태그
▶ name 에는 Propert(속성)의 값을 변경할 자바빈의 객체 이름을 지정한다.
▶ property 에는 값을 지정할 property이름을 정한다.
▶ value 에는 property(속성)의 값을 지정해준다. 즉 user객체에 있는 id 속성의 값을 shj7242로 세팅한다. value 속성 대신에 param으로 지정해줄 수도 있다.
getProperty 액션태그
▶ name 에는 자바빈 객체의 이름을 넣는다.
▶ property 에는 프로퍼티의 이름을 지정한다.
결국엔 request.getParameter느낌이다 User 객체에 어떠한 속성의 값을 가져온다.