본문 바로가기

front

jstl 함수정리

1 표현언어의 표현방식

$(expr}

2. 표현언어의 기본객체

pageContext :: PageContext 객체 .사용$(pageContext.request.requestURI}

pageScope :: page 범위에 포함된 속성 값에 접근

requestScope :: request 범위에 포함된 속성값에 접근 .사용$(requestScope.name}
sessionScope :: session 범위에 포함된 속성값에 접근
applicationScope :: application 범위에 포함된 속성값에 접근
param :: request.getParameter("aa")와 동일한 기능사용은 $(param.aa)
paramValues :: request.getParameterValues의 기능. $(paramValues.aa)
header :: request.getHeader('aa") 와 동일. $(header.aa)
headerValues :: request.getHeaderValues("aa")와 동일 $(headerValues.aa)
initParam :: 컨텍스트의 초기화 파라미터값
cookie :: 쿠키 정보에 접근
3.연산자
3.1 수치 연산자
+ : 덧셈
- :뺄셈
* :곱셈
/ or div :나눗셈
% or mod : 나머지
ex)
${"10"+1} =>11
$("일"+1} => 에러남 "일"이 숫자로 변경이 안되기 때문
${null +1} =>1 null은 0으로 처리
3.2 empty연산자
empty<값>
- 값이 null이면 true
- 빈문자열 true
- 길이가 0인배열 true
- 빈Map true
- 빈 Collection true
3.3 비교연산자 ,논리연산자 , 비교선택연산자(?:) ->자바연산자와 동일
4.JSTL이 제공하는 태크 종류
라이브러리하위기능접두어관련 URL
코어변수지원 , 흐름제어 , URL처리chttp://java.sun.com/jsp/jstl/core
XMLXML 코어 , 흐름제어 , XML변환xhttp://java.sun.com/jsp/jstl/xml
국제화지역 , 메시지 형식 , 숫자및 날짜형식fmthttp://java.sun.com/jsp/jstl/fmt
데이터베이스SOLsqlhttp://java.sun.com/jsp/jstl/sql
함수콜렉션처리 , String 처리fnhttp://java.sun.com/jsp/jstl/functions
-코어,함수 라이브 러리가 자주 사용되며 ,접두어는 다른접두어를 사용해도 상관없다.
- 필요한 jar 파일: jstl.jar , standard.jar (다운받는 방법 : http://www.cyworld.com/love82u/3054391)
4.1 코어태그(가장 많이 사용)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
기능분류태그설 명
변수지원setJSP에서 사용될 변수 설정
remove설정한 변수 제거
흐름제어if조건에 따라 내부코드수행
choose다중조건을처리
forEach콜렉션이나 Map의 항목처리시사용
forTokens구분자로 분리된 각각의 토근을 처리할때 사용
URL 처리importURL을 사용하여 다른자원의 결과삽입
redirect지정한 결로로 리다이렉트한다
urlurl재작성
기타태그catch예외처리에 사용
outJspWriter에 내용을 알맞게 처리후 출력
4.1.1변수지원
● set 태그(변수선언)
- <c:set var="varName" scope="session" value="someValue">
: c - > 접두어(선언된 접두어를 입력하면됨)
: var -> 값을 지정할 변수
: scope -> 변수를 지정한 영역 (page , request, session , application)
: value -> 변수의 값 지정
<c:set var="varName" scope="session"> <!--이런식으로 몸체에 값을 입력할 수도있다.
someValue
</c:set>
map 및 객체
: var를 target로 , property 선언후 똑같이 사용
● remove 태그(선언된 변수 삭제)
<c:remove var="varName" scope="session/>
4.1.2 흐름제어 태그(제일 많이 사용)
● if태그(java의 if와 같은 하지만 if-else의 효과는없음)
<c:if test="조건">
</c:if>
● choose 태그
<c:choose >
<c:when test="${num>10 && num<15}">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
● forEach 태그(java의 for, do-while등등)
- 배열 , collection 또는 Map에 저장되어 있는 값 순차적으로 처리
<c:forEach var ="i" begin="1" end="100" step="2">
</c:corEach>
<c:forEach var ="i" items="${inarr}" begin="2" end="4">
[${i}]
</c:forEach>

<c:forEach var ="i" items="${map}">
${i.key} = ${i.value}</br>
</c:forEach>
● forTokens 태그(java의 java.util.StringTokenizer같은 기능제공)
<c:forTokens var="token" items"문자열" delims="구분자">
${token}
</c:forTokens>
4.1.3 URL 처리태그
● import(<jsp:include>와 같은기능)
-import와 <jsp:include>의 차이점으로는 import 태그는 같은 웹 어플리케이션 디렉터리에 포함되지 않았더라도 그리고 심지어 같은 서버에 있지 않은 자원에대해서도 접근가능
- 주의해야할 사항 : import태크를 사용한다고해서 읽어온 내용이 곧바로 import태그 위치에 포함되지 않는다는점.
<c:import url=http://media.daum.net charEncoding="euc-kr" var="daumNews" scope="request">
<c:param name="_top_G" value="news"/>
</c:import>
url : 읽어올 URL
charEncoding : 읽어 온 데이테의 캐릭터 셋
var : 읽어온 데이터를 저장할 변수명
scope : 변수를 저장할 범위 지정
-위와 같이읽어온 데이터를 var="daumNews"에 저장하기 때문에 곧바로 import 위치에 포함되지 않는다. 또한 읽어온 데이터를 쉽게 원하는 형태로 변경이 가능하다.
● url태그
- url을 생성하여 변수에 저장할때 사용
<c:url var="url1" value="/shopping.do" scope="session">
<c:param name="Add" value="isdn-001"/>
</c:url>
url : 생성한 URL이 저장될 변수
value : 생성할 url
scope : 변수를 저장할 범위 지정
● redirect 태그(response.sendRedirect와 비슷한기능)
- 지정한 페이지로 리다이렉트할때 사용
<c:redirect url="/ifTag.jsp">
<c:param name="name" value="bk"/>
</c:redirect>
4.1.4 기타태그
● out 태그
- JspWriter에서 데이터를 출력할때 사용
<c:out value="value" escapeXml="{true|false}" default="defaultValue"/>
value : JspWriter에 출력할 값을 나타냄
escapeXml : 이속성의 값이 true일경우 아래의 문자변경 ,생략가능
문자변환된 형태
<&lt;
>&gt;
&&amp;
'&#039;
'"&#034;
default : value 속성에서 지정한 값이 존재하지 않을때 사용될 값을 지정
● catch 태그
- 예외가 발생할때 사용되는 태그
<c:catch var="exName">
</c:catch>

fn:substringBefore , fn:substringAtter

파일 이름만 가져오고 싶었는데  lastIndexOf 를 써봐도 안됨.

jstl 함수에는 lastIndexOf가 없다

대신  fn:substringBefore , fn:substringAtter 존재


<c:set var="name" value="son01.gif />
${fn:substringBefore( name ,'.')}
<c:out value="${name}" />


결과 -> son01


<img src="${pageContext.request.contextPath}${ImgUrlPath}thumb/${fn:substringBefore(list.FILE_SAVE_NAME,'.')}<s:message code='board.thumb.backName' />.<s:message code='board.thumb.extension' />" alt="" />



fn:split

예) 02-123-4567 이란 값을 split 처리 할 경우 배열의 순서값으로 찾아서 처리 함.

${fn:split(list.TEL,'-')[1]} - ${fn:split(list.TEL,'-')[2]}

[출처] jstl 함수 정리2|작성자 237


${header.Host}
${header["User-Agent"]}
${headerValues.Accept[0]}    : Accept=>헤더이름 , [0]=>인텍스
${headerValues["Users-Data"][1] : Users-Data=>헤더이름 , [1]=>인텍스

${cookie.CART}   : CART=>쿠키이름 
${cookie["User_Name"]} : User_Name=>쿠키이름 
${cookie.CART.value} : CART=>쿠키이름 Cart의 값을 가져오라 
${cookie["CART"]["value"]} : CART=>쿠키이름 Cart의 값을 가져오라 
${cookie.CART["value"]}
${cookie["CART"].value}
${cookie.CART.domain}
${cookie.CART["path"]}
${cookie.CART["maxAge"]}

${initParam.PARAM_NAME}
${initParam["PARAM_NAME"]}


'front' 카테고리의 다른 글

element의 크기/위치 정보와 관련된 프로퍼티-메소드(offsetLeft....etc)  (0) 2015.01.04
익스프레션 언어  (0) 2014.10.29
자주쓰는 정규식  (0) 2014.10.24
el 식  (0) 2014.10.21
FILE AJAX로 업로드하기  (0) 2014.09.04