EL, JSTL 이것저것

JQUERY 2014. 2. 19. 13:32
728x90
반응형
출처 그냥.. | 장남규
원문 http://blog.naver.com/nkjang/20022722502
 
자료형
 
불리언 : true, false
정수 : 0~9, 음수는 '-' 포함
실수 : 0~9, 소수점('.'), 지수형(3.24e3) 표현가능
문자열 : 따옴표( ' 또는 " ) 사용. 따옴표는 \' 과 같이 \ 사용
널 : null
 
 
 
EL 기본객체
 
pageContext
pageScope
requestScope
sessionScope
applicationScope
param                   Map 객체. request.getParameter(이름)과 동일
paramValues        값의 type은 String[]. request.getParameterValues(이름)과 동일
header                 요청정보의 헤더이름=값 Map 객체. request.getHeader(이름)과 동일
headerValues       헤더이름=값 배열
cookie                  쿠키이름=쿠키 Map. request.getCookies()로 구한 Cookie 배열로 부터 매핑 생성
initParam             초기화 파라미터의 이름=값 Map. application.getInitParameter(이름)
 
 
 
 
표현식
 
<표현1>.<표현2>
 
- <표현1>을 <값1>으로 변환
- <값1>이 null이면 null을 리턴
- <값1>이 null이 아닌 경우 <표현2>를 <값2>로 변환
  <값2>가 null이면 null을 리턴
 
- <값1>이 Map, List, 배열인 경우
  <값1>이 Map이면
    - <값1>.containsKey(<값2>)가 false이면 null 리턴
    - 그렇지 않으면 <값1>.get(<값2>)를 리턴
 
  <값1>이 List, 배열이면
    - <값2>가 정수인지 검사(정수 아니면 에러 발생)
    - <값1>.get(<값2>) 또는 Array.get(<값1>, <값2>)를 리턴
    - 위의 코드가 예외 발생시 에러 발생
 
- <값1>이 (Map, List, 배열이 아닌)다른 객체이면
  - <값2>를 문자열로 변환
  - <값1> 객체의 프로퍼티 중 <값2> 를 이름으로 가지는 프로퍼티의 값을 리턴
  - 그렇지 않은 경우 에러 발생
 
 
 
 
수치연산자
 
+, -, *, / or div, % or mod
 
ex)
${"10" + 1} ==> 자동 변환되어 11로 됨.
${null + 1} ==> 객체가 null이면 0으로 처리됨. 결과값 : 1
 
 
 
비교연산자
 
== or eq
!= or ne
< or lt
> or gt
<= or le
>= or ge
 
ex)
${someValue == '2004'}
 
 
 
 
논리연산자
 
&& or and
|| or or
! or not
 
 
 
empty 연산자
 
empty <값>
 
- <값>이 null이면 true
- <값>이 빈 문자열("")이면 true
- <값>이 길이가 0인 배열이면 true
- <값>이 빈 Map이면 true
- <값>이 빈 Collection(List, Map, Array)이면 true
- 이외의 경우는 false
 
 
 
비교 연산자
 
<수식> ? <값1> : <값2>
 
 
 
함수호출은 제약적임. 별도 정의(TLD) 필요
 
 
 
 
core
 
 
변수지원
- set        변수 설정
- remove 변수 제거
 
흐름제어
- if               조건
<c:if test="조건">
...
</c:if>
 
 
<c:if test="!empty ${list}">
</c:if>
 
 
- choose      다중조건
<c:choose>
  <c:when test="조건">
  ...
  </c:when>
  <c:when test="조건">
  ...
  </c:when>
  ...
  <c:otherwise>
  ...
  </c:otherwise>
</c:choose>
 
 
- forEach      반복(Collection, Map 처리)
<c:forEach var="변수" items="아이템">
...
   ${변수사용}
...
</c:forEach>
ex)
<c:forEach var="i" begin="1" end="10" step="2">
    ${i} 사용
</c:forEach>
 
<c:set var="sum" value="0"/>
<c:forEach var="i" begin="1" end="100" step="2">
<c:set var="sum" value="${sum+1}"/>
</c:forEach>
결과 = ${sum}
 
<c:set var="intArray" value="<%= new int[] {1,2,3,4,5} %>" />
<c:forEach var="i" items="${intArray}" begin="2" end="4">  배열 intArray의 2~4 요소의 값을 i에 저장
  [${i}]
</c:forEach>
 
<c:set var="map" value="<%= mapData %>" />  Map의 각 원소를 나타내는 Map.Entry를 i에 저장
<c:forEach var="i" items="${map}">
  ${i.key} = ${i.value}<br>
</c:forEach>
 
 
- forTokens  구분자로 분리된 각각의 토큰 처리
 
URL처리
- import        URL을 사용하여 다른 자원의 결과를 삽입
- redirect      URL redirect
- url              URL 재작성
 
기타태그
- catch         예외처리
- out            JspWriter에 출력
<c:out value="value" escapeXml="{true|false}" default="defaultValue" />
escapeXml : true(default)일 경우 (> < & ' ")같은 문자를 (&lt; &gt; &amp; &#039; &#034)로 변환한다.
 
 
 
국제화(fmt)
 
<c:formatNumber>
 
<c:set var="price" value="10000" />
<fmt:formatNumber value="${price}" type="number" var="numberType" />
value : 양식에 맞춰 출력할 숫자
type : 어떤 양식으로 출력할지. number일 경우 숫자형식으로, percent일 경우 %, currency일 경우 통화 형식으로 출력
groupingUsed : 콤마(,)와 같이 단위를 구분할 때 사용되는 기호 사용 여부(12,000). default : true.
var : formatNumber 태그의 결과를 저장할 변수의 이름. var 속성을 사용하지 않으면 결과가 곧바로 출력됨.
pattern : 직접 숫자가 출력되는 양식을 지정. java.text.DecimalFormat 클래스의 패턴 사용.
 
 
 
<c:formatDate>
 
value : 포맷팅할 숫자
type : 포맷할 타입. date인 경우날짜만, time인 경우 시간만, both인 경우 날짜와 시간을 함께 포맷팅.
dateStyle : 날짜의 출력 스타일 지정. java.text.DateFormat의 스타일(full, long, default, medium, short)
timeStyle : 시간의 출력 스타일 지정. java.text.DateFormat의 스타일
pattern : 직접 출력 패턴 지정. java.text.SimpleDateFormat 클래스 패턴
var : 포맷 결과를 저장할 변수 지정. 지정하지 않으면 바로 출력됨.
 
<c:set var="now" value="<%= new java.util.Date() %>" />
<fmt:formatDate value="${now}" type="date" dateStyle="full" />
<fmt:formatDate value="${now}" pattern="z a h:mm" />
 
 
 
함수(fn)
 
fn:contains(string, substring)  string이 substring을 포함하면 true 리턴. 
fn:containsIgnoreCase(string, substring)  대소문자에 관계없이, string이 substring을 포함하면 true 리턴. 
fn:endsWith(string, suffix)  string이 suffix로 끝나면 true 리턴. 
fn:escapeXml(string)  string에 XML과 HTML에서 특별한 의미를 가진 문자들이 있으면, XML 엔티티 코드('&' -> &amp; 등)로 바꿔준 뒤 문자열 리턴. 
fn:indexOf(string, substring)  string에서 substring이 처음으로 나타나는 인덱스 리턴. 
fn:join(array, separator)  array(배열) 요소들을 separator를 구분자로 하여 연결해서 리턴 
fn:length(obj)  obj 이 배열이나 컬렉션이면 요소의 갯수를, 문자열이면 문자의 갯수를 리턴. 
fn:replace(string, before, after)  string 내에 있는 before 문자열을 after 문자열로 모두 바꿔서 리턴. 
fn:split(string, separator)  string 내의 문자열을 separator에 따라 나누어서 배열로 구성해 리턴. 
fn:startsWith(string, prefix)  string이 prefix로 시작하면 true 리턴. 
fn:substring(string, begin, end)  string에서 begin 인덱스에서 시작해서 end 인덱스에 끝나는 부분(end 인덱스에 있는문자 포함)의 문자열을 리턴. string.substring(begin, end)의 결과와 동일. end가 -1일 경우 string.substring(begin)과 동일.
fn:substringAfter(string, substring)  string에서 substring이 나타나는 이후의 부분에 있는 문자열을 리턴. 
fn:substringBefore(string, substring)  string에서 substring이 나타나기 이전의 부분에 있는 문자열을 리턴. 
fn:toLowerCase(string)  string을 모두 소문자로 바꿔 리턴. 
fn:toUpperCase(string)  string을 모두 대문자로 바꿔 리턴. 
fn:trim(string)  string 앞뒤의 공백(whitespace)을 모두 제거하여 리턴. 

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,