2016년 6월 1일 수요일

JSP의 자바빈(JavaBeans) 사용시 jsp:setProperty의 property="*"에 대해서






JSP의 자바빈(JavaBeans) 사용시 <jsp:setProperty ... property="*"에 대해서

jsp:setProperty에서 property="*"는 개발자들의 손가락의 수고를 많이 덜어주는 유용한 기능이다.

JavaBeans가 다음과 같이 구성되어 있다고 할때

package com.joe.test;

public class Student {
private String sName;
private int sAge;
private int sGrade;
private int sID;
public Student() {
}

public String getsName() {
return sName;
}

public void setsName(String sName) {
this.sName = sName;
}

... 나머지는 생략 ...
}


JSP에서 자바빈 사용시 원래는 다음과 같은 방식이다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="myStudent" class="com.joe.test.Student" scope="page"/>  

... 중략 ...

<jsp:setProperty name="myStudent" property="sName" value="고길동"/>
<jsp:setProperty name="myStudent" property="sAge" value="10" />
<jsp:setProperty name="myStudent" property="sGrade" value="3"/>
<jsp:setProperty name="myStudent" property="sID" value="12345"/>

그런데 만일 폼으로부터 JSP가 JavaBeans를 이용해서 값을 넘겨 받는다면 이런식으로 처리된다.
form의 내용이 만일 다음과 같다고 할때

<form action="showStudent.jsp" method="post">
이름 : <input type="text" name="name" size="10"><br/>
나이 : <input type="text" name="age" size="3"><br/>
학년 : <input type="text" name="grade" size="3"><br/>
학번 : <input type="text" name="id" size="10"><br/>
<p/>
<input type="submit" value="전송">&nbsp;&nbsp;&nbsp;<input type="reset" value="취소">
</form>

showStudent.jsp에서는 다음과 같이 값을 받는다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="myStudent" class="com.joe.test.Student" scope="page"/>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
     
<jsp:setProperty name="myStudent" property="sName" param="name"/>
<jsp:setProperty name="myStudent" property="sAge" param="age"/>
<jsp:setProperty name="myStudent" property="sGrade" param="grade"/>
<jsp:setProperty name="myStudent" property="sID" param="id"/>

학생이름 : <jsp:getProperty name="myStudent" property="sName"/><br/>
학생나이 : <jsp:getProperty name="myStudent" property="sAge"/><br/>
학&nbsp;&nbsp;&nbsp;년 <jsp:getProperty name="myStudent" property="sGrade"/><br/>
학생번호 : <jsp:getProperty name="myStudent" property="sID"/> 
</body>
</html>

그런데 만일 form의 파라미터 이름을 JabaBeans에 있는 변수명과 동일하게 한다면

<form action="showStudent.jsp" method="post">
이름 : <input type="text" name="sName" size="10"><br/>
나이 : <input type="text" name="sAge" size="3"><br/>
학년 : <input type="text" name="sGrade" size="3"><br/>
학번 : <input type="text" name="sID" size="10"><br/>
<p/>
<input type="submit" value="전송">&nbsp;&nbsp;&nbsp;<input type="reset" value="취소">
</form>

showStudent.jsp에서는 아래 4개의 코드를 

<jsp:setProperty name="myStudent" property="sName" param="sName"/>
<jsp:setProperty name="myStudent" property="sAge" param="sAge"/>
<jsp:setProperty name="myStudent" property="sGrade" param="sGrade"/>
<jsp:setProperty name="myStudent" property="sID" param="sID"/>

다음과 같이 간단히 사용할수 있다(showStudent.jsp의 나머지 내용은 동일).

<jsp:setProperty name="myStudent" property="*" />

댓글 없음:

댓글 쓰기