Jsp-EL & JSTL
EL (Expression Language)
- 표현 언어란?
- 표현 언어(Expression Language)는 값을 표현하는 데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완하는 역할을 한다.
- 표현 언어가 제공하는 기능
- JSP의 스코프(scope)에 맞는 속성 사용
- 집합 객체에 대한 접근 방법 제공
- 수치 연산, 관계 연산, 논리 연산자 제공
- 자바 클래스 메소드 호출 기능 제공
- 표현언어만의 기본 객체 제공
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
pageContext.setAttribute("p1", "page scope value");
request.setAttribute("r1", "request scope value");
session.setAttribute("s1", "session scope value");
application.setAttribute("a1", "application scope value");
%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${pageScope.p1} <br>
${requestScope.r1} <br>
${sessionScope.s1} <br>
${applicationScope.a1} <br><br>
${p1 }
</body>
</html>
JSTL (JSP Standard Tag Library)
- JSTL이란?
- JSTL(JSP Standard Tag Library)은 JSP 페이지에서 조건문 처리, 반복문 처리 등을 html tag형태로 작성할 수 있게 도와줍니다.
<%
request.setAttribute("n", 10);
%>
<c:set var="n" value="10" scope="request"/>
-
위의 두 코드는 같은 방식이다. 하나는 java, 하나는 jstl 방식이다.
- forEach 구문
<%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% List<String> list = new ArrayList<>(); list.add("hello"); list.add("world"); list.add("!!!"); request.setAttribute("list", list); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <c:forEach items="${list }" var="item"> ${item } <br> </c:forEach> </body> </html>
- javascript관련
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <c:set var="t" value="<script type = 'text/javascript'>alert(1);</script>"/> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> ${t } <c:out value="${t }" escapeXml="true"></c:out> </body> </html>
댓글남기기