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="*" />




+ Recent posts