국비 50-2

냐아암·2023년 6월 30일
0

국비

목록 보기
65/114

EL

JSP 표현식을 조금 더 효율적이고 간단하게 작성할 수 있도록 고안된 언어
화면에 표현하고자 하는 자바코드를 ${value} 형식으로 작성함

📍 ${ param.name 속성값 }

  • 단일 파라미터를 얻어와 출력하는 용도
  • 복수 파라미터에 사용하는 경우 맨 앞(0번째 인덱스)값만 얻어옴

📍 ${paramValues.lang[인덱스] }

  • ${ paramValues.lang[0] }
package edu.kh.jsp.controller;

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;

import edu.kh.jsp.model.vo.Person;

@WebServlet("/EL/result")
public class ELResultServlet extends HttpServlet {
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		// POST 방식 요청 -> 한글 깨짐 -> 문자 인코딩 처리 필요
		req.setCharacterEncoding("UTF-8");
		
		// 새로운 임의의 값
		String menu = "돈까스";
		
		// 파라미터 얻어오기
		String inputName = req.getParameter("inputName");
		int inputAge = Integer.parseInt(req.getParameter("inputAge"));
		String inputAddress = req.getParameter("inputAddress");
		
		// Person 객체에 파라미터를 변경한 값을 대입
		Person p = new Person();
		
		p.setName(inputName +"님");
		p.setAge(inputAge +100);
		p.setAddress("대한민국 " +inputAddress);
		
		// 응답 화면 작성 코드를 JSP로 위임
		
		// 1) 요청 발송자
		String path = "/WEB-INF/views/el/result.jsp"; // webapp 폴더 기준으로 작성
		RequestDispatcher dispatcher = req.getRequestDispatcher(path);
		
		// 2) 요청 위임 시 추가할 값 세팅
		req.setAttribute("person", p);
		
		req.setAttribute("menu", menu);
		
		// 3) 요청 위임
		dispatcher.forward(req, resp);
	}

}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>c:forEach 향상된 for문처럼 사용하기</title>
</head>
<body>

	<h3>EL로 파라미터 얻어오는 방법</h3>
	1. \${ param.name 속성값 }
	
	-> 단일 파라미터를 얻어와 출력하는 용도
	-> 복수 파라미터에 사용하는 경우 맨 앞(0번 인덱스) 값만 얻어옴<br><br>
	
	${param.lang }
	
	<br><br>
	
	2. \${paramValues.lang[인덱스] } <br><br>
	
	${ paramValues.lang[0] }<br>
	${ paramValues.lang[1] }<br>
	${ paramValues.lang[2] }<br>
	
	<hr>
	
	<h3>향상된 for문 사용</h3>
	
	<ul>
		<c:forEach var="str" items="${paramValues.lang}" varStatus="vs">
			<li>
				${str} / ${vs.index} / ${vs.count }	/ ${vs.current}	
				<br>
				
				<c:if test="${vs.first}">
					<!-- 첫 번째 반복인 경우 -->
					<span style="color:red;">첫 번째</span>
				</c:if>
				<c:if test="${vs.last}">
					<!-- 마지막 반복인 경우 -->
					<span style="color:blue;">마지막</span>
				</c:if>
				
			</li>
		</c:forEach>
	</ul>
	
	

</body>
</html>
profile
개발 일지

0개의 댓글