자바 빈즈 활용
package kr.ac.kopo.board;
/*
자바빈즈 클래스 규칙
1. package 존재
2. class의 접근제한자 public
3. 모든 멤버변수 private
4. 디폴트 생성자가 선언되어 있어야 함.
5. getter/ setter 메소드가 선언 돼 있어야 함
*/
public class BoardVO {
private int no;
private String title;
private int viewCnt;
public BoardVO() {
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getViewCnt() {
return viewCnt;
}
public void setViewCnt(int viewCnt) {
this.viewCnt = viewCnt;
}
}
<%@page import="kr.ac.kopo.board.BoardVO"%>
<%@page import="kr.ac.kopo.board.*"%> <%-- 와일드 카드 사용하여 해당 패키지 모두 임포트 --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 아래의 내용이 바디 태그 내에 있어도 상관없다. --%>
<%
BoardVO b = new BoardVO();
b.setNo(10);
b.setTitle("hello");
// 공유영역에 해당 변수를 추가하자
// pageContext 영역에 객체 등록
// 이름 : board 값 : 생성된 BoardVO 객체
pageContext.setAttribute("board", b);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
${board.no} ==> 자바빈즈 혹은 맵이 될 수 있다.
--%>
no : <%= b.getNo() %><br>
<%-- EL로 자바 객체를 표현하려면, 우선 공유영역에 해당 변수를 등록해야 한다. 저 위에서 공유영역에 등록하는 코드를 추가하자. --%>
<%-- 우선 공유영역에 등록된 객체를 자바표현식으로 나타내보자. --%>
no : <%= pageContext.getAttribute("board") %><br> <%-- 이건 객체의 주소값이 나온다. --%>
no : <%= ((BoardVO) pageContext.getAttribute("board")).getNo() %><br>
title : <%= b.getTitle() %><br>
title : <%= ((BoardVO)pageContext.getAttribute("board")).getTitle() %><br>
<%-- EL 방식으로 공유영역에 등록된 객체를 표현해보자. 자바표현식보다 훨씬 간편하다. --%>
el no : ${ board.no }<br>
el title : ${ board.title } <br>
<%-- el aaa : ${ board.aaa } ====> aaa라는 게터가 없기 때문에 500에러가 난다. --%>
</body>
</html>
맵 활용
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
Map<String, String> b = new HashMap<>();
b.put("no", "10");
b.put("title", "hello");
pageContext.setAttribute("board", b);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
no : <%= b.get("no") %><br>
title : <%= b.get("title") %><br>
<%-- 공유영역에 등록하고 EL로 표현해보자. --%>
el no : ${ board.no }<br>
el title : ${ board.title }<br>
el aaa : ${ board.aaa } <%-- 결과는==> empty %>
</body>
</html>
'웹 프로그래밍 > JSP' 카테고리의 다른 글
[JSP] include(지시자와 액션태그) + jstl import (0) | 2020.07.21 |
---|---|
[JSP] 절대 경로 주의 (include, forward, .xml) (0) | 2020.07.20 |
[JSTL] c:import VS jsp:include (0) | 2020.07.20 |
[JSP] JSP 객체, EL 객체를 사용할 수 있는 이유 (0) | 2020.07.14 |
[JSP] 기초 (Servlet 코드와 JSP 코드 비교) (0) | 2020.07.13 |