프로그래밍/JSP Servlet

JSP/Servlet – JSTL <c:set> 커스텀 액션 사용하기

가카리 2016. 1. 24. 21:10
반응형

 

JSP/Servlet – JSTL <c:set> 커스텀 액션 사용하기

 

JSTL에 대한 전반적인 설명은 JSTL의 이해 및 실습 에 나와있습니다.

 

JSTL 설치 방법은 다음 링크에 있습니다.

 

<c:set>은 변수를 선언하고나서 그 변수에 초기값을 대입하는 커스텀 액션입니다.

 

자바에서 int num = 1; 의 역할을 하게됩니다.

 

    <c:set var="num" value="1">

 

이렇게 선언한 변수는 익스프레션 언어(${변수명})에서는 사용할 수 있습니다.

 

    <c:set var="num" value="1"/>

    ${num}

 

하지만 익스프레션(<%=변수명%>)에서는 사용할 수 없습니다.(page 데이터영역만 가능함)

 

    <c:set var="num" value="1"/>

    <%= num %>//불가능

 

 

JSTL를 사용하기 위해서 WEB-INF/lib 폴더에 반드시 JSTL 라이브러리 파일을 첨부해야합니다.

 

그리고 예제 소스를 Multiply.jsp에 작성합니다.

 

Multiply.jsp

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"

pageEncoding="EUC-KR"%>

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:set var="num1" value="3"/>

<c:set var="num2" value="2"/>

<c:set var="result" value="${num1*num2}"/>

<!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>

    ${num1 } ${num2 } 곱은? ${result }

</body>

</html>

 

실행 화면

JSTL를 사용한 첫 예제입니다. 곱한 값이 잘나오네요.

 

다음은 page 데이터 영역말고 request, session, application 데이터 영역에 애트리뷰트를 저장하는 법을 알아봅시다.

 

데이터 영역 내용은 JSP/Servlet- 익스프레션 언어(애트리뷰트 및 param, paramValues)를 참고하세요.

 

같은 프로젝트에서 위의 2개 파일을 추가해 봅시다.

 

ProductInfo.jsp

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"

pageEncoding="EUC-KR"%>

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:set var="CODE" value="1234" scope="request"/><!-- scope애트리뷰트로 데이터 범위를 지정할 있씁니다. -->

<c:set var="NAME" value="컴퓨터" scope="request"/>

<c:set var="PRICE" value="100만원" scope="request"/>

<jsp:forward page="ProductInfoView.jsp"/>

<!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>

 

</body>

</html>

 

ProductInfoView.jsp

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"

pageEncoding="EUC-KR"%>

<!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>

    상품코드 : ${CODE }<BR>

    상품이름: ${NAME }<BR>

    가격 : ${PRICE }<BR>

</body>

</html>

 

실행 화면

데이터 범위 지정을 해서 다른 jsp 파일을 호출해도 값이 제대로 출력되네요.



반응형