wrkbrs

<jsp:setProperty ... property="*"/> 본문

JSP

<jsp:setProperty ... property="*"/>

zcarc 2018. 10. 26. 16:39

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


출처: http://developer-joe.tistory.com/83 [코드 조각-Android, Java, C#, C, C++, JavaScript, PHP, HTML, CSS, Delphi]