반응형
#47강 EL(Expression Language)
- View를 위한 데이터 추출 표현식 EL
- 기존에 저장소에서 값을 꺼내오기 위해 그리고 출력하기 위해 복잡한 코드를 사용했는데, EL을 사용함으로서 복잡함이 개선.
// 기존 코드
<%=request.getAttribute("result") %>입니다.
// EL을 사용하여 저장소에서 값을 가져오는 코드
${result}입니다.
- ArrayList, 배열 등 조금 더 복잡한 값을 꺼내오기 위해 EL 사용 시
package com.newlecture.web;
import java.io.IOException;
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 num_ = request.getParameter("n");
if(num_ != null && !num_.equals(""))
num = Integer.parseInt(num_);
String result;
if(num % 2 != 0)
result = "홀수";
else
result = "짝수";
request.setAttribute("result", result);
String[] names = {"newlec", "dragon"};
request.setAttribute("names", names);
//redirect(현재 작업내역과 전혀 상관없이 새로운 요청 하도록 하는 것)
//forward(현재 작업내역 이어갈 수 있도록 공유)
//forward 관계에서 사용할 수 있는 저장소는 request
RequestDispatcher dispatcher = request.getRequestDispatcher("spag.jsp");
dispatcher.forward(request, response);
}
}
<%@ 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("result") %>입니다.
${result}입니다.<br>
${names[0]}
${names[1]}
</body>
</html>
- Map 등 조금 더 복잡한 값을 꺼내오기 위해 EL 사용 시
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 num_ = request.getParameter("n");
if(num_ != null && !num_.equals(""))
num = Integer.parseInt(num_);
String result;
if(num % 2 != 0)
result = "홀수";
else
result = "짝수";
// 기존
request.setAttribute("result", result);
// 배열 등 사용 시
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);
//redirect(현재 작업내역과 전혀 상관없이 새로운 요청 하도록 하는 것)
//forward(현재 작업내역 이어갈 수 있도록 공유)
//forward 관계에서 사용할 수 있는 저장소는 request
RequestDispatcher dispatcher = request.getRequestDispatcher("spag.jsp");
dispatcher.forward(request, response);
}
}
<%@ 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("result") %>입니다.
${result}입니다.<br>
${names[0]}
${names[1]}<br>
${notice.title}
</body>
</html>
반응형
'프로그래밍 > 자바, JDBC' 카테고리의 다른 글
뉴렉처 학습(서블릿/JSP) 49강 (0) | 2020.06.02 |
---|---|
뉴렉처 학습(서블릿/JSP) 48강 (0) | 2020.06.01 |
뉴렉처 학습(서블릿/JSP) 45강 ~ 46강 (0) | 2020.05.29 |
뉴렉처 학습(서블릿/JSP) 44강 (0) | 2020.05.28 |
뉴렉처 학습(서블릿/JSP) 43강 (0) | 2020.05.27 |