🌈 JSP useBean
JSP에서 자바빈(Bean)을 다루는 표준 방법 : <jsp:useBean>, <jsp:setProperty>, <jsp:getProperty>
스크립틀릿으로 직접 new 하는 것보다 가독성/유지보수가 좋고, 자동 매핑도 지원
1. 가장 기본 예제 (SimpleBean)
1) Ex01_form.jsp
2) Ex01_result.jsp – 스크립틀릿 vs 액션 태그 비교
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Ex01_result.jsp<br>
<%@ page import="myPkg.SimpleBean" %>
<%
request.setCharacterEncoding("UTF-8");
String msg = request.getParameter("msg");
%>
msg : <%= msg %><br>
<%-- (A) 자바코드로 Bean 사용 --%>
<%
SimpleBean sb = new SimpleBean();
sb.setMsg(msg);
String returnMsg = sb.getMsg();
%>
JAVA returnMsg : <%= returnMsg %><br>
<%-- (B) JSP 액션태그로 Bean 사용 --%>
<jsp:useBean id="sb2" class="myPkg.SimpleBean" />
<jsp:setProperty name="sb2" property="msg" />
JSP msg : <jsp:getProperty name="sb2" property="msg" />
useBean 기본 구문
<jsp:useBean id="fb" class="myPkg.FruitBean" scope="request" />
<jsp:setProperty name="fb" property="name" value="홍길동"/>
<jsp:getProperty name="fb" property="name"/>
- useBean = 객체 생성/탐색
- setProperty = 값 넣기,
- getProperty = 값 꺼내기
setProperty 모든 property 불러오기
property="msg"과 faram 가 같다면 faram생략가능
<jsp:setProperty property="*" name="fb2"/>
property="*" 일괄 매핑 + 체크박스 다중값 처리 예제
<form name="myform" action="Ex03_result.jsp" method="post">
이름 : <input type="text" name="name" value="홍길동"><br>
비번 : <input type="password" name="password" value="1234"><br><br>
좋아하는 과일<br>
<label><input type="checkbox" name="fruit" value="귤">귤</label><br>
<label><input type="checkbox" name="fruit" value="딸기">딸기</label><br>
<label><input type="checkbox" name="fruit" value="사과">사과</label><br>
<label><input type="checkbox" name="fruit" value="포도">포도</label><br>
<input type="submit" value="전송">
<input type="reset" value="취소"><br>
</form>
2) Ex03_result.jsp (배열 그대로 유지하는 방식)
FruitBean.Java (배열 프로퍼티)
private String[] fruit; // ★ 다중값 받기
<jsp:useBean id="fb" class="myPkg.FruitBean" />
<jsp:setProperty name="fb" property="*" />
과일 :
<%
fruit :
<%
String[] arr = fb.getFruit();
for(int i=0; i<arr.length; i++){
out.print(arr[i]+" ");
}
%>
❗❗배열프로퍼티는 <jsp:getProperty>로 출력을 못하는 이유
<jsp:getProperty property="fruit" name="fb"/>
→ 배열은 toString()이 주소를 반환하므로 자바코드로 출력해야함
3. “문자열로 합쳐 저장”하는 변형 (FruitBean2) 예제
1) FruitBean2.java (문자열 보관)
private String fruit; // "딸기 사과" 처럼 합쳐 저장
2) Ex03_result.jsp (합쳐서 set)
<jsp:useBean id="fb2" class="myPkg.FruitBean2" />
<jsp:setProperty name="fb2" property="*" />
<%
String temp="";
String[] fruit2 = request.getParameterValues("fruit");
for(int i=0; i<fruit2.length; i++ ){
temp += fruit2[i] + " "; // temp 딸기 사과
}
fb2.setFruit(temp);
%>
선택 과일: <jsp:getProperty name="fb2" property="fruit" />
장/단점
- 장점: 출력이 간단 (<jsp:getProperty>)
- 단점: 개별 항목 접근 어려움(문자열 파싱 필요)
꼭 기억할 체크리스트 ✅
- request.setCharacterEncoding("UTF-8")는 getParameter() 이전에 호출
- property="*"는 요청 파라미터 이름과 동일한 프로퍼티를 자동 매핑
- 체크박스 다중값: String[] 프로퍼티 + setFruit(String[]) 시그니처 필요
- 배열은 <jsp:getProperty>로 바로 출력 X → loop 또는 String.join()
- 폼 필드명 ≠ 프로퍼티명 → <jsp:setProperty ... param="...">
- 스코프 바꾸면 forward/세션 공유 전략이 더 유연해짐
'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글
| 11. JSP + JDBC Select 예제1 _ member (0) | 2025.09.11 |
|---|---|
| 10. JSP 유효성 검정 / usebean 숙제 (0) | 2025.09.10 |
| 08. JSP_ActionTag : fowardAction (0) | 2025.09.10 |
| 07. JSP_ActionTag : includeActionTag & include지시어와 차이점 (0) | 2025.09.10 |
| 04. JSP_여러 값을 request보내기 (1) | 2025.09.08 |