-
jsp:useBean 액션 태그JAVA/웹 프로그래밍 - JSP 2020. 12. 1. 22:02
우리가 jsp 페이지에서 다른 jsp 페이지에 데이터를 넘기는 방법은 여러가지가 있다.
<% request.getParameter %>라는 자바 문법의 jsp를 이용할 수 있고
다른 방법으로는 ${param.title}을 사용할 수 있다. (tag lib 문법)
그런데 넘겨야할 데이터가 많으면 골치가 아프다.
그렇기 때문에 하나의 클래스를 만들어서 객체 전달을 통해 데이터를 전달하면 아주 손쉬운 방법이 될 것이다.
이와 같이 객체를 전송하려면 useBean이라는 것을 사용해야한다.
이는 객체를 받을 때, 클래스로 이용하는 tag이다.
객체를 다른 페이지에서 받을 때 Bean을 먼저 선언을 하고 setProperty라는 것을 이용해서 값을 Bean에 저장한다.
bean의 의미는 자바 객체를 의미한다.
WebContent에 아래의 세 jsp파일을 만들자.
usebean.jsp, usebean_trans.jsp, usebean_trans2.jsp 파일을 만든다.
src폴더에 board.model 패키지에 Board.java 파일을 만든다.
기본적으로 프로젝트는 Dynamic Web Project로 만들어야 한다.
Board.java
더보기package board.model; import java.util.Date; public class Board { int idx; String title; String content; int readcount; int groupid; int depth; int re_order; int isdel; String write_id; String write_name; Date write_day; public Board() {} public Board(int idx, String title, String content, int readcount, int groupid, int depth, int re_order, int isdel, String write_id, String write_name, Date write_day) { this.idx = idx; this.title = title; this.content = content; this.readcount = readcount; this.groupid = groupid; this.depth = depth; this.re_order = re_order; this.isdel = isdel; this.write_id = write_id; this.write_name = write_name; this.write_day = write_day; } public int getIdx() {return idx;} public void setIdx(int idx) {this.idx = idx;} public String getTitle() {return title;} public void setTitle(String title) {this.title = title;} public String getContent() {return content;} public void setContent(String content) {this.content = content;} public int getReadcount() {return readcount;} public void setReadcount(int readcount) {this.readcount = readcount;} public int getGroupid() {return groupid;} public void setGroupid(int groupid) {this.groupid = groupid;} public int getDepth() {return depth;} public void setDepth(int depth) {this.depth = depth;} public int getRe_order() {return re_order;} public void setRe_order(int re_order) {this.re_order = re_order;} public int getIsdel() {return isdel;} public void setIsdel(int isdel) {this.isdel = isdel;} public String getWrite_id() {return write_id;} public void setWrite_id(String write_id) {this.write_id = write_id;} public String getWrite_name() {return write_name;} public void setWrite_name(String write_name) {this.write_name = write_name;} public Date getWrite_day() {return write_day;} public void setWrite_day(Date write_day) {this.write_day = write_day;} }
그리고, 데이터를 담을 객체는 다음과 같다.
usebean.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="usebean_trans.jsp"> 제목 : <input type="text" name="title"><p> 내용 : <input type="text" name="content"><p> <input type="submit" value="전송"> </form> </body> </html>
usebean_trans.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%-- <%@ page import="board.model.Board" %> --%> <!-- 객체를 하나 만들 것인데, 이름은 board이고 --> <jsp:useBean id="board" class="board.model.Board" /> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> ${param.title} ${param.content} <!-- board 객체에 param.title 값을 저장한다.(setTitle메소드를 이용해서) --> <jsp:setProperty property="title" name="board" value="${param.title}" /> <!-- board 객체에 param.content 값을 저장한다.(setContent메소드를 이용해서) --> <jsp:setProperty property="content" name="board" value="${param.content}" /> <p> <!-- board 객체에서 getTitle메소드를 사용해서 title을 리턴 받는다.(board객체로부터 데이터를 꺼낸다.) --> getTitle1 : <jsp:getProperty property="title" name="board" /><br> <!-- board 객체에서 getContent메소드를 사용해서 content를 리턴 받는다.(board객체로부터 데이터를 꺼낸다.) --> getContent1 : <jsp:getProperty property="content" name="board" /><br> <p> <!-- board 객체가 날라간다. --> <jsp:forward page="usebean_trans2.jsp"></jsp:forward> </body> </html>
usebean_trans2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <jsp:useBean id="board1" class="board.model.Board" /> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <!-- 객체의 모든 set함수를 이용한다는 의미가 "*"의 의미이다. 넘어온 데이터가 모두 board1에 저장이 된다. --> <jsp:setProperty property="*" name="board1" /> <!-- board1 객체에서 getTitle메소드를 사용해서 title을 리턴 받는다.(board1객체로부터 데이터를 꺼낸다.) --> getTitle2 : <jsp:getProperty property="title" name="board1" /><br> <!-- board1 객체에서 getContent메소드를 사용해서 content를 리턴 받는다.(board1객체로부터 데이터를 꺼낸다.) --> getContent2 : <jsp:getProperty property="content" name="board1" /><br> </body> </html>
usebean.jsp 파일을 실행하자.
'JAVA > 웹 프로그래밍 - JSP' 카테고리의 다른 글
게시판 만들기 - 10. 이미지 업로드 구현하기 (0) 2020.12.02 게시판 만들기 - 9. 검색 리스트 구현하기 (0) 2020.12.02 게시판 만들기 - 8. 글 수정 & 글 삭제 구현하기 (0) 2020.12.01 게시판 만들기 - 7. 채팅 기능 추가 하기 (0) 2020.11.28 게시판 만들기 - 6. 게시판의 게시글에 답글 달기 (0) 2020.11.27