Expression Language
EL은 JSP에서 Java 코드에 대한 보다 간단한 대안을 제공하는 Java 표현 언어의 약자입니다.
EL을 사용하면 JavaBeans 구성 요소에 저장된 애플리케이션 데이터에 더 쉽게 액세스할 수 있습니다.
예제로 알아보자
아래 User 클래스를 생성하고, 서블릿에 요청 속성으로 추가해봅시다
public class User {
private String name;
private String email;
// constructor, getters, setters...
}
User user = new User();
user.setName("John Doe");
user.setEmail("john@example.com");
request.setAttribute("user", user);
RequestDispatcher dispatcher = request.getRequestDispatcher("user.jsp");
dispatcher.forward(request, response);
그런 다음 JSP 파일(user.jsp)에서 EL을 사용하여 User
개체의 속성에 액세스할 수 있습니다.
<html>
<body>
<h1>Welcome, ${user.name}!</h1>
<p>Your email is: ${user.email}</p>
</body>
</html>
여기서 ${user.name}
및 ${user.email}
은 요청 범위에 저장된 “user” 객체의 “name” 및 “email” 속성에 액세스하는 EL 표현식입니다. 이러한 속성의 값은 결과 HTML 페이지에 표시됩니다.
${user.name}
은 Java 코드에서 user.getName()
을 호출하는 것과 같습니다. 그러나 EL을 사용하면 구문이 훨씬 더 깨끗하고 단순해집니다.
ETC. Operation .
, Scope
EL 표현식에서 ‘.’ 연산자는 객체의 속성을 탐색하는 데 사용됩니다.
이를 통해 중첩된 프로퍼티에 액세스하기 위해 긴 get 메서드 체인을 사용해야 하는 Java의 "게터 지옥"에 빠지지 않고도 프로퍼티에 깔끔하고 간단하게 액세스할 수 있습니다.
코드 스니펫은 또한 EL의 자동 유형 강제 기능(예: 문자열을 숫자로 변환)과 EL이 널 값을 우아하게 처리하는 기능도 보여줍니다.
EL의 범위와 관련하여 ${name}과 같이 지정된 범위가 없는 경우, EL 해석기는 가장 가까운 범위(페이지 범위)에서 시작하여 일치하는 항목을 찾을 때까지 더 넓은 범위(요청, 세션, 애플리케이션)로 이동하여 "이름"을 찾습니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'DEV > Java' 카테고리의 다른 글
Spring MVC @ModelAttribute (0) | 2023.05.19 |
---|---|
Servlet filter (0) | 2023.05.19 |
Servlet의 상태 정보 저장 (0) | 2023.05.19 |
Servlet (0) | 2023.05.19 |
Spring MVC (1) | 2023.05.19 |