wrkbrs
<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="전송"> <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/>
학 년 <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="전송"> <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]
'JSP' 카테고리의 다른 글
HttpSession, Servlet forward, request.setAttribute, session.setAttribute의 차이 (0) | 2018.10.27 |
---|---|
https://blog.naver.com/oldpprog/40108156325 (0) | 2018.10.26 |
특정페이지로 이동방법(forward/redirect) (0) | 2018.10.26 |
forward 와 sendRedirect 의 차이점이 뭔가요? (0) | 2018.10.26 |
<jsp:include page=" <jsp:include page=" .. ." flush="true">에서 flush란? (0) | 2018.10.26 |