티스토리 뷰

Servlet JSP

JSP EL(Expression Language)

Programmers 2021. 4. 27. 10:28
반응형

EL(Expression language)이란?
View를 위한 데이터 추출 표현식

예를 들어, Controller 에서 request.setAttribute("cnt", 30);
이라는 식을 View에서 확인하려면 request.getAttribute("cnt"); 로 호출 해야한다.
여기서 View에서 코드블럭안에 자바코드를 사용하게 되는데 이를 개선하기 위한 방법으로 EL이 등장했다.

EL표기법

${cnt}

${cnt}

 

${list[0]}

${list[0]}

${n.title}

${n.title}

package com.newlecture.web;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/spag")
public class spag extends HttpServlet{

		@Override
		protected void doGet(HttpServletRequest request, HttpServletResponse response)
				throws ServletException, IOException {
						
			int num = 0;
			String value;
			String num_ = request.getParameter("num");
				if(num_ != null && !num_.equals(""))
					num = Integer.parseInt(num_);
				if(num%2 != 0)
					value = "홀수";
				else
					value = "짝수";
				/*변수*/
				request.setAttribute("value", value);
				
				/*list*/
				String[] names = {"newlec", "dragon"};
				request.setAttribute("names",names);
				
				/*Map*/
				Map<String, Object> notice = new HashMap<String, Object>();
				notice.put("id", 1);
				notice.put("title", "EL은 좋아요");
				request.setAttribute("notice", notice);
				
				/* forward를 위한 dispatcher */				
				RequestDispatcher dispatcher 
					= request.getRequestDispatcher("spag.jsp");
				dispatcher.forward(request, response);
			
		}
	
}

spag.java서블릿에서 변수, List, Map을 생성 및 전달 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    	   

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<!--출력 코드--------------------------------------------------------->
<!-- 변수: request.getAttribute("value")  -->
	${value}<br>

<!-- List: ((List)request.getAttribute("names")).get(0) -->
	${names[0]}<br>
	
<!-- Map: ((Map)request.getAttribute("notice")).get("title") -->
	${notice.title}
	
</body>
</html>	

spag.jsp에서 출력을 위한 변수, List, Map의 EL코드 작성 

 

MVC방식으로 만들때 EL을 이용하면 코드를 간결하고 유용하게 사용 할 수있다.

반응형

'Servlet JSP' 카테고리의 다른 글

JSP EL 연산자  (0) 2021.04.27
JSP EL 저장소  (0) 2021.04.27
JSP MVC model2  (0) 2021.04.26
JSP MVC model1  (0) 2021.04.26
JSP 스파게티 Spaghetti 코드  (0) 2021.04.26
댓글
공지사항