1, c:out tag的default和escapeXml属性
①default属性
代码:Hello <c:out value="${user.name }" default="Guest" />
结果:Hello Guest
代码:Hello <c:out value=" ${user.name }" default="Guest" />
结果:Hello
②escapeXml属性
代码:<c:out value="${null }" default="${'default is 1' }" escapeXml="true" />
结果:default is 1
代码:<c:out value="${null }" default="${'default is 1' }" escapeXml="false" />
结果:default is 1
组合静态文本和多个 EL 表达式以指定动态属性值
代码:<c:out value="Hello ${user.firstName} ${user.lastName}"/>;
代码:<c:out value="Hello ${user.firstName} ${user.lastName}"/>;
结果:Hello max Eric
2,EL对${identifier}的访问
如果范围变量仅有id,则按page -> request -> session -> application的顺序寻找
所以如果明确知道id的范围,在访问时最好带上范围,这样能增加速度。例如:
${requestScope.identifier}。对应scope名称:pageScope、requestScope、sessionScope和applicationScope。
3, c:forTokens解析字符串
delims属性制定的字符串为分隔符,如果delims为多个字符组成的字符串,则只要字符串中含有该字符之一就会被分割。
代码:
<c:set var="nameList" value="eric;,henry;,;;selia,;;," scope="request"/>
<c:forTokens items="${nameList }"delims=",;" var="name">
<li><c:out value="${name }"/></li>
</c:forTokens>
结果:
· eric
· henry
· selia
4, 循环状态varStatus
varStatus是个集合,包括:index(集合中的排序)、count(当前循环次数)、first(是否第一次循环,boolean类型)和last(是否最后一次循环,boolean类型)。
代码:
<c:set var="nameList" value="haha;eric;,henry;,;;selia,;;,wae,lily,tom" scope="request"/>
<c:forTokens items="${nameList }"delims=",;" var="name" varStatus="status" begin="1" end="5" step="2">
<li>序<c:out value="${status.index + 1 }"/>
循<c:out value="${status.count }"/>
第一次?<c:out value="${status.first }"/>
最后一次?<c:out value="${status.last }"/>
名称:<c:out value="${name }"/>
</li>
</c:forTokens>
结果:
· 序2 循1 第一次?true 最后一次?false 名称:eric
· 序4 循2 第一次?false 最后一次?false 名称:selia
· 序6 循3 第一次?false 最后一次?true 名称:lily
5, jsp:include、c:import和<%@ include %>的区别
jsp:include类似方法,每次都将include的代码执行一遍,并在源页面展示结果;
c:import类似jsp:include,但功能比jsp:include强大,属于JSTL;
<%@ include %>类似宏,将代码拷贝到源页面。
代码:mainTemplate1.jsp
<c:import url="mainTemplate2.jsp">
<c:param name="name" value="eric"/>
</c:import>
mainTemplate2.jsp
<html>
passed name is <c:out value="${param.name }"></c:out>
</html>
结果:
c:import sample passed name is eric
6, c:url传参数
<a href="<c:urlvalue="mainTemplate2.jsp">
<c:paramname="lcd">mtj</c:param></c:url>">
go to mainTemplate2.jsp
</a>
解析成html:
<a href="mainTemplate2.jsp?lcd=mtj">
go to mainTemplate2.jsp
</a>