[jstl] el tags

el tagcore와 함께 사용되는 태그의 종류이다.

el tag 란?

  • el tag 는 Expression Language 의 약자로 표현 언어 라는 의미를 갖는다.
  • jsp에서 사용하는 <%= %> 스크립트릿과 그 쓰임새가 비슷하다.
  • 설정된 변수를 표현하는데 사용되는 태그이다.

el tag 를 사용한 접근

1. scriptlet을 사용한 값 출력

<%
String sethello = "Hello";
request.setAttribute("str", setHello);
%>

<%
String getHello = request.getAttribute("str");
%>

<p>
<%
out.println("getHello is " + getHello);
%>
</p>
  • 내장객체 out을 사용하여 값을 출력할 수 있다.

2. scriptlet + el tag 를 사용한 값 출력

<%
request.setAttribute("elTest", "This is el practice.");
%>

<p>
${elTest}
</p>  
This is el practice.
  • scriptlet으로 설정된 값 역시 el tag 를 사용하여 가져올 수 있다.
  • 여기서 주의할 점은 setAttribute의 첫번째 인자값을 사용해서 el tag 를 사용해야하는 것이다.

3. el tag + core tag 사용한 값 출력

<c:set var="setHello" value="Hello"/>
<p>
  ${setHello}
</p>
  • el tag, core tag 를 사용하여 값을 세팅하고 출력한다.
  • 위의 코드를 아주 간단하게 작성할 수 있다.
  • 위 코드에서 사용된 ${}el tag 라고 부른다.


<%= request.getAttribute("data") %>
${data }
  • el tagrequest.getAttribute("setHello"); 를 함축적으로 표현한 태그이다.

el tag의 활용

1. 빈데이터 체크하기

${empty dataasdfawefs }

${not empty dataasdfawefs }
  • 데이터 변수 앞에 empty 를 붙이면 데이터가 비었는지 체크한다.
    • 비어있으면 true 를 리턴한다.
    • 값이 있으면 false 를 리턴한다.
  • empty 앞에 not 을 붙이면 데이터가 리턴값이 반전된다.
    • 비어있으면 false 를 리턴한다.
    • 값이 있으면 true 를 리턴한다.

2. 연산

<span>el tag calc : </span> ${10 + 50 }
el tag calc : 60
  • el tag안에 연산을 넣으면 연산된 결과값을 리턴한다.

3. 조건

<span>el tag condition : </span> ${10 < 50 }
el tag condition : true
  • el tag안에 조건을 넣으면 조건의 결과값을 리턴한다.


<p>
  삼항연산자를 표현한다.
  <%=(3>2)?true:false %>
  ${(3<2)?true:false }
</p>
삼항연산자를 표현한다. true false
  • 조건의 결과를 삼항 연산자를 표현할 수 있다.

4. 조건 판정

  • 비교 연산을 통해 조건에 대한 판정을 내릴 수 있다.
eq tag
${a eq b }
${a==b }
  • eq tag를 사용하여 두개의 값이 같은지 확인할 수 있다.
ne tag
${a ne b }
${a!=b }
  • ne tag를 사용하여 두개의 값이 다른지 확인할 수 있다.
lt tag & le tag
${a lt b}
${a < b}

${a le b}
${a <= b}
  • lt tag를 사용하여 앞의 값이 뒤의 값보다 작은지 판단할 수 있다.
  • le tag를 사용하여 앞의 값이 뒤의 값보다 작거나 같은지 판단할 수 있다.
gt tag & ge tag
${a gt b}
${a > b}

${a ge b}
${a >= b}
  • lt tag를 사용하여 앞의 값이 뒤의 값보다 큰지 판단할 수 있다.
  • le tag를 사용하여 앞의 값이 뒤의 값보다 크거나 같은지 판단할 수 있다.

el tag로 객체 사용하기

public class JspTestBean{
	private String msg;
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
}
<%
JspTestBean bean = new JspTestBean();

bean.setMsg("hello Message!");

request.setAttribute("bean", bean);
%>

1. <%=bean.getMsg() %>

2. ${bean.msg }
  • msg (변수명) 만 적으면 getter가 자동으로 호출된다.

el tag로 배열 사용하기

<%
String array[] = new String[]{"hello", "world"};

request.setAttribute("array", array);
%>
${array[0] }
  • 배열을 객체로 취급한다.
  • 기존 배열에 접근하는 것과 같은 방식으로 접근할 수 있다.

el tag로 List 사용하기

<%
List<String> list= new ArrayList<>();

list.add("hello");
list.add("world");

request.setAttribute("list", list);
%>

list index 0 : ${list[0] }
list index 1 : ${list[1] }
  • List에 접근하기 위해서는 배열처럼 []을 사용해야한다.

el tag로 HashMap 사용하기

<%
HashMap<String, String> map = new HashMap<>();

map.put("first", "Hi");
map.put("second", "Hello");
map.put("third", "안녕?");

request.setAttribute("map", map);
%>

${map.first }== ${map["first"] }<br>
${map.second }== ${map["second"] }<br>
${map.third }== ${map["third"] }<br>
  • map.first 와 같이 객체에 map.key값 으로 value에 접근할 수 있다.
  • map["first"] 로도 접근이 가능하다.

el param으로 parameter 받기

${param.name }
  • 위 url로 전달되는 parameter에 접근할 수 있다
  • url : “http://localhost:8080/index.jsp?name=hello”로 접근할 경우 hello출력

Comments