ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 파일을 실행하자.

    댓글

Designed by Tistory.