snippet @page
	<%@page contentType="text/html" pageEncoding="UTF-8"%>
snippet jstl
	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
	<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
snippet jstl:c
	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
snippet jstl:fn
	<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
snippet cpath
	${pageContext.request.contextPath}
snippet cout
	<c:out value="${1}" default="${0}" />
snippet cset
	<c:set var="${1}" value="${0}" />
snippet cremove
	<c:remove var="${1}" scope="${0:page}" />
snippet ccatch
	<c:catch var="${0}" />
snippet cif
	<c:if test="\${${1}}">
		${0}
	</c:if>
snippet cchoose
	<c:choose>
		${0}
	</c:choose>
snippet cwhen
	<c:when test="\${${1}}">
		${0}
	</c:when>
snippet cother
	<c:otherwise>
		${0}
	</c:otherwise>
snippet cfore
	<c:forEach items="\${${1}}" var="${2}" varStatus="${3}">
		${0:<c:out value="$2" />}
	</c:forEach>
snippet cfort
	<c:set var="${1}">${2:item1,item2,item3}</c:set>
	<c:forTokens var="${3}" items="\${$1}" delims="${4:,}">
		${0:<c:out value="$3" />}
	</c:forTokens>
snippet cparam
	<c:param name="${1}" value="${0}" />
snippet cparam+
	<c:param name="${1}" value="${2}" />
	cparam+${0}
snippet cimport
	<c:import url="${1}" />
snippet cimport+
	<c:import url="${1}">
		<c:param name="${2}" value="${3}" />
		cparam+${0}
	</c:import>
snippet curl
	<c:url value="${1}" var="${2}" />
	<a href="\${$2}">${0}</a>
snippet curl+
	<c:url value="${1}" var="${2}">
		<c:param name="${4}" value="${5}" />
		cparam+${0}
	</c:url>
	<a href="\${$2}">${3}</a>
snippet credirect
	<c:redirect url="${0}" />
snippet contains
	${fn:contains(${1:string}, ${0:substr})}
snippet contains:i
	${fn:containsIgnoreCase(${1:string}, ${0:substr})}
snippet endswith
	${fn:endsWith(${1:string}, ${0:suffix})}
snippet escape
	${fn:escapeXml(${0:string})}
snippet indexof
	${fn:indexOf(${1:string}, ${0:substr})}
snippet join
	${fn:join(${1:collection}, ${0:delims})}
snippet length
	${fn:length(${0:collection_or_string})}
snippet replace
	${fn:replace(${1:string}, ${2:substr}, ${0:replace})}
snippet split
	${fn:split(${1:string}, ${0:delims})}
snippet startswith
	${fn:startsWith(${1:string}, ${0:prefix})}
snippet substr
	${fn:substring(${1:string}, ${2:begin}, ${0:end})}
snippet substr:a
	${fn:substringAfter(${1:string}, ${0:substr})}
snippet substr:b
	${fn:substringBefore(${1:string}, ${0:substr})}
snippet lc
	${fn:toLowerCase(${0:string})}
snippet uc
	${fn:toUpperCase(${0:string})}
snippet trim
	${fn:trim(${0:string})}
