Test.java코드
먼저 useBean을 사용하기 위해 Test.java 클래스스를 만들었다.
package test;
public class Test {
private String[] datas = {"apple","banana","kiwi"};
private int num1=10;
private int num2=20;
public String[] getDatas() {
return datas;
}
public int getNum1() {
return num1;
}
public int getNum2() {
return num2;
}
}
이미 값을 셋해주어서 getter만 만든 상태.
그리고 test1.jsp 의 코드이다.
상단에 커스텀 태그를 사용하기위한 taglib을 작성하였고,
Test.java에 있는 정보를 사용하기위해 jsp:useBean을 작성하였다.
<%@ page import="test.Test"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:useBean id="test" class="test.Test" scope="session"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL식, JSTL으로 수정</title>
</head>
<body>
<form action="test2.jsp" method="post">
<select name="sel">
<c:forEach var="v" items="${test.datas}">
<option>${v}</option>
</c:forEach>
</select>
<input type="submit" value="선택">
</form>
</body>
</html>
test.datas ( 자바코드에서 초기화해둔 apple,banana,kiwi ) 값들을 forEach문으로 출력 후 선택된 값을
form action을 통해 test2.jsp로 보내게 된다.
test2.jsp 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL식 - 2</title>
</head>
<body>
sel이라는 파라미터에 저장된 값: ${param.sel} <br>
<hr>
현재 session에는 test라는 이름의 객체가 저장된 상태 <br>
${test.num1}+${test.num2}=${test.num1+test.num2}
</body>
</html>
test1.jsp 에서 이미 useBean으로 session 단위에 test 객체가 저장되어있기 때문에,
test2.jsp 에서까지 useBean사용 없이 test에 접근 할 수 있는 것을 볼 수 있다.
그래서 test.num1 과 num2의 계산 또한 가능하다.
수행결과
선택한 apple이 값으로 test2.jsp로 넘어갔고,
session에는 test라는 이름의 객체가 저장되어있는 상태기 때문에
따로 useBean 없이 호출하여 사용해 연산까지 한 것을 볼 수 있다.
'개발자노트 > 웹' 카테고리의 다른 글
트랜잭션 예제 - 은행 계좌이체 예제 (0) | 2022.08.17 |
---|---|
트랜잭션 transaction (0) | 2022.08.17 |
HTML - JSP - 커스텀태그 import / redirect / url (0) | 2022.08.16 |
HTML - JSP - 커스텀태그에서 for문 (for each)사용 (리스너 클래스 사용) (0) | 2022.08.16 |
HTML - JSP - 커스텀태그 choose / when / otherwise / 삼항연산자 (0) | 2022.08.16 |