[ JSP 자바 빈즈(JAVA BEANS) ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | package ex4.com.java.study; public class StudentDTO { /* [ 자바 빈즈 ] : 그냥 단순히 DTO, VO 개념임... StudentDTO 이게 DTO이고 jsp단에서 useBean이 객체 생성 setProperty, getProperty를 통해 값을 가져올 수 있음. 단, 네이밍 규칙은 지켜줘야 함 */ private String id; private String name; private String address; 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; } public String getAddress() { return address; } public void setAddress(String address) { this .address = address; } @Override public String toString() { return "StudentDTO [id=" + id + ", name=" + name + ", address=" + address + "]" ; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <%@ page language= "java" contentType= "text/html; charset=UTF-8" pageEncoding= "UTF-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <head> <meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8" > <title>Insert title here</title> </head> <!-- useBean 액션 태그 : 사용할 객체를 지정하는 작업 class 속성에 명시한 클래스를 id로 지정한 이름으로 사용하겠다는 의미 scope는 해당 객체의 유효범위를 지정함 => page, request, application 등.. --> <jsp:useBean id= "studentDTOId" class = "ex4.com.java.study.StudentDTO" scope= "page" ></jsp:useBean> <!-- setProperty 액션 태그 : useBean에서 지정한 id에 해당하는 객체의 name 필드에 hyr을 대입함 name 속성은 위에서 지정한 id이며 property는 필드 변수 명 value는 값을 의미한다. --> <jsp:setProperty property= "name" value= "hyr" name= "studentDTOId" /> 값 가져다 쓰기 : <jsp:getProperty property= "name" name= "studentDTOId" /><br/> |
그렇다면 지금까지 살펴본 빈즈는 왜 사용하는 것일까?? 무엇인가 편리한게 있지 않을까?
그렇다. 빈즈를 이용하면 우리가 form 태그에서 input 태그 등을 이용해서 많은 값들을 submit으로 보낼 때
이러한 값들을 일일이 하나씩 request.getParameter("name") 등으로 가져오지 않고 한번에 빈즈 객체에 저장시킬 수 있다.
매우 편리하다!!
하지만, 조건이 있다. form태그에 있는 input 태그 등의 name값과 빈즈의 필드변수명이 일치해야만 한다.
아래의 예제를 보자.
-PeopleBeans 클래스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package com.jsp.study; public class PeopleBenas { // 자바 빈즈에서 필드변수명을 폼태그의 input 의 name과 일치시키면 // 한번에 폼에서 전송한걸 세팅할 수 있음으로 이름을 같게 맞춰주자. private String name; private int age; private String address; public String getName() { return name; } public void setName(String name) { this .name = name; } public int getAge() { return age; } public void setAge( int age) { this .age = age; } public String getAddress() { return address; } public void setAddress(String address) { this .address = address; } @Override public String toString() { return "PeopleBenas [name=" + name + ", age=" + age + ", address=" + address + "]" ; } } |
-beansMain.jsp : 폼태그가 있는 페이지
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <%@ page language= "java" contentType= "text/html; charset=UTF-8" pageEncoding= "UTF-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <head> <meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8" > <title>Insert title here</title> </head> <% request.setCharacterEncoding( "UTF-8" ); %> <form action= "beans.jsp" method= "post" > 이름 : <input type= "text" name= "name" /><br/> 나이 : <input type= "number" name= "age" /><br/> 주소 : <input type= "address" name= "address" /><br/> <input type= "submit" value= "전송" /> </form> |
-beans.jsp : 폼태그에서 서브밋해 데이터를 전달받을 페이지
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <%@ page language= "java" contentType= "text/html; charset=UTF-8" pageEncoding= "UTF-8" %> <%request.setCharacterEncoding( "UTF-8" ); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <head> <meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8" > <title>Insert title here</title> </head> <!-- 빈즈 선언 --> <jsp:useBean id= "peopleId" class = "com.jsp.study.PeopleBenas" ></jsp:useBean> <!-- property에 * 를 주게 되면 폼태그에서 전달한게 한꺼번에 세팅되기 때문에 굉장히 간편하게 값을 세팅할 수 있다. 단, 전제조건은 input의 name값과 beans class 의 필드변수명들이 일치해야만 한다!! --> <jsp:setProperty property= "*" name= "peopleId" /> <% String name = peopleId.getName(); int age = peopleId.getAge(); String addr = peopleId.getAddress(); %> 이름 : <%=name %><br/> 나이 : <%=age %><br/> 주소 : <%=addr %><br/> |
'스터디 > JSP' 카테고리의 다른 글
JSP 커넥션 풀(Connection Pool) (0) | 2017.08.16 |
---|---|
JSP DB(데이터베이스) (0) | 2017.08.14 |
JSP 에러페이지에 대하여... (0) | 2017.08.11 |
JSP 쿠키(cookie)에 대하여... (0) | 2017.08.11 |
JSP에서의 세션(session)에 대해서... (0) | 2017.08.11 |