카테고리 없음

JSP EL 구문 알아보기

최종군 2024. 9. 17. 19:31

EL 표현식이란 

Expression Language 표현식이라고도 부른다

 

기존에 사용했던 표현식(출력식) : <%= 변수/ 메소드 호출%>

위에 표현식과 비슷하게 JSP상에 표현하고자 하는 값을 작성하는 방법

 

EL 표현식 : $ {변수 / 메소드 } 형식으로 작성한다


 

index.jsp 파일 

-

 

*index.파일 -

web.xml 파일에 welcome=file로 등록이 되어있다 


 <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
</web-app>

 


 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL Action tag</title>
</head>
<body>

<h1> JSP 문법</h1>
        <h2>* EL(Expression language) 표현식</h2>



        <h4><a href="el.do">[1] EL 기본구문</a></h4>
<h4><a href="operator.do">[2] EL 연산자</a></h4>

</body>
</html>

 


  <h4><a href="el.do">[1] EL 기본구문</a></h4>

 

el.do : servlet으로 요청

 

Setvlet : 동적 페이지 

 클라이언트의 요청을 처리하고 응답을 생성하는 역할을 한다

애플리케이션의 비즈니스 로직을 구현 클라이언트의 요청을 처리

데이터베이스와 상호작용을 하는 작업을 수행한다. 

 

@WebServlet("/el.do") path 설정을 servlet에서 직접 설정이 가능하다 

 

RequestDispatcher를 통해서 응답페이지를 지정 후 

그 요청 결과를 보여준다 

 

request.getRequestDispatcher("views/1_EL/01_el.jsp").forward(request, response);

 

 

EL 표현식을 이용하여 get 메소드를 사용하지 않고 

키값만 제시하면 바로 접근이 가능하다 

기본적으로 EL은 JSP 내장객체를 구분하지 않고 모든 내장 객체의 

키값을 검색하여 존재하는 경우 그 값을 가지고 온다 

 

 

 

String classRoom = (String)request.getAttribute("classRoom");
 Person student =  (Person)request.getAttribute("student");

 

getAttribute("키값");

getAttribute를 통해서 키값에 담긴 데이터를 조회한다 

이때 object 타입이므로 해당 데이터에 맞게 형변환을 해줘야된다

 

 

기존 EL문을 사용하지 않고 구문을 출력 시

<%= %> 을 통해서 출력을한다 

 

강의장 : <%=classRoom %> <br>
학원 :   <%=academy %> <br>
강사 :   <%=teacher.getName() %>, 
<%= teacher.getAge() %>, 
<%= teacher.getGendet()%> <br>

 

EL문을 사용해서 출력 : 

 

학원 : ${academy} <br>
강의장 : ${classRoom} <br> = 키값만을 통해서 직접 꺼낼 수 있다
강사 : ${teacher.name}, ${teacher.age}, ${teacher.gendet}<br>
학생정보 
${student.name}, ${student.age}, ${student.gendet}
</p>

 

만일 동일한 키값으로 저장된 데이터를 확인 시 

scope 값 : ${scope}

EL은 공유범위가 가장 작은 scope 부분에 해당하는 키를 찾아준다. 

 (키값만을 검색한다)