jsp标签
JSTL
java中的一个定制标记库集
实现了JSP页面中的代码复用
基于标签库原理,重复率较高的代码块支持复用,提高效率
长的很像XML,方便前端查看与参与开发
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
四大分类
核心标签--最常用
格式化标签
SQL标签
XML标签
核心标签
JSTL的核心标签库共13个,从功能上分类
表达式控制标签:out set remove catch
流程控制标签:if choose when otherwise
循环标签:forEach forTokens
URL操作标签:import url redirect
1 <!-- c:out --> 2 <c:out value="${username}" default="error"></c:out><br> 3 <c:out value="<我是内容>" escapeXml="false"></c:out><br>
1 <!-- c:out --> 2 <c:out value="${username}" default="error"></c:out><br> 3 <c:out value="<我是内容>" escapeXml="false"></c:out><br>
1 <!-- c:set --> 2 <c:set value="today" var="date" scope="page"></c:set> 3 <c:out value="${date}"></c:out><br> 4 5 <c:set var="date1" scope="page">today</c:set> 6 <c:out value="${date1}"></c:out><br> 7 8 <jsp:useBean id="user" class="com.demo.bean.User"></jsp:useBean> 9 <c:set value="张三" property="uName" target="${user}"></c:set> 10 <c:out value="${user.uName}"></c:out><br>
1 <!-- c:remove --> 2 <c:set value="lily" var="firstName"></c:set> 3 <c:remove var="firstName"></c:remove>
1 <!-- c:catch --> 2 <c:catch var="lalala"> 3 <c:set property="a" target="b">abc</c:set> 4 </c:catch> 5 <c:out value="${lalala}"></c:out>
1 <!-- c:if --> 2 <c:if test="${param.score >= 90}" var="result"> 3 <c:out value="成绩优秀"></c:out> 4 </c:if> 5 <c:out value="${result} "></c:out>
1 <!-- c:choose c:when c:otherwise --> 2 <c:choose> 3 <c:when test="${param.score >= 90 && param.score <=100}"> 4 <c:out value="成绩优秀的一逼;分数:${param.score} "></c:out> 5 </c:when> 6 <c:when test="${param.score >= 80 && param.score <= 89}"> 7 <c:out value="成绩凑活吧;分数:${param.score} "></c:out> 8 </c:when> 9 <c:when test="${param.score >= 70 && param.score <= 79}"> 10 <c:out value="啧啧啧,就那样吧;分数:${param.score} "></c:out> 11 </c:when> 12 <c:when test="${param.score >= 60 && param.score <= 69}"> 13 <c:out value="艹,再少就不及格了;分数:${param.score} "></c:out> 14 </c:when> 15 <c:when test="${param.score < 60 && param.score >=0}"> 16 <c:out value="${param.score},就这点? "></c:out> 17 </c:when> 18 <c:otherwise> 19 <c:out value="还能考个正常点的分数吗?<br>什么?地球世界末日了?哦" escapeXml="false"></c:out> 20 </c:otherwise> 21 </c:choose>
forEach
根据循环条件遍历集合中的元素
var设定变量名用于存储从集合中取出的元素
items指定要遍历的集合
begin、end用于指定遍历的起始位置和终止位置
step指定循环步长
varStatus通过index、count、first、last几个状态
描述begin和end集中元素的状态
1 <!-- c:forEach --> 2 <c:forEach var="list" items="${lists}"> 3 <c:out value="${list}"></c:out><br> 4 </c:forEach> 5 <c:out value="=========================="></c:out><br> 6 <c:forEach var="list" items="${lists}" begin="1" end="4"> 7 <c:out value="${list}"></c:out><br> 8 </c:forEach> 9 <c:out value="=========================="></c:out><br> 10 <c:forEach var="list" items="${lists}" varStatus="first"> 11 <c:out value="${list}"></c:out> 12 <c:if test="${first.first == true}"> 13 <c:out value="你是第一个"></c:out> 14 </c:if><br> 15 </c:forEach>
1 <!-- c:forTokens --> 2 <c:forTokens var="nowStr" items="1,2,3,4,5" delims=","> 3 <c:out value="${nowStr}"></c:out> 4 </c:forTokens>
1 <!-- c:import 2 url:被导入资源的url路径 3 Context:相同服务器下不同的web工程:/开头----- 4 tomcat/conf/context.xml中的crossContext="true" 5 <Context crossContext="true"> 6 var:以String类型存入被包含的内容 7 Scope:var变量的JSP范围 8 charEncoding:被导入文件的编码格式 9 carReader:以Reader类型存储被导入文件的内容 --> 10 11 <c:catch var="error09"> 12 <c:import url="http://www.baidu.com" charEncoding="utf-8"></c:import> 13 </c:catch> 14 <c:out value="${error09}"></c:out> 15 <!-- 相对路径 --> 16 <!-- var和scope --> 17 <c:catch var="error07"> 18 <c:import url="tt.txt" charEncoding="gbk" var="tt_txt" scope="page"></c:import> 19 <c:out value="这是自定义内容输出的:${pageScope.tt_txt}"></c:out><br> 20 </c:catch> 21 <c:out value="${error07}"></c:out>
1 <!-- context属性的用法 --> 2 <c:catch var="error06"> 3 <c:import url="/index.jsp" context="/myhome"></c:import> 4 </c:catch> 5 <c:out value="${error06}"></c:out>
<!-- c:redirect --> 实现请求的重定向 url:重定向的地址:String的相对路径或者绝对路径 context:导入其他web应用中的页面
JSTL函数--常用
1 <c:out value="‘你好’中是否包含‘好’这个字:${fn:contains('你好','好')}"></c:out><br> 2 <c:out value="‘你好’中是否包含‘我’这个字:${fn:contains('你好','我')}"></c:out><br> 3 <c:out value="‘Hello’中是否包含‘hello’这个字(忽略大小写):${fn:containsIgnoreCase('Hello','hello')}"></c:out><br> 4 <c:out value="‘ Hello’中‘H’是否为开头字母:${fn:startsWith('Hello','H')}"></c:out><br> 5 <c:out value="‘Hello’中‘o’是否为结尾字母:${fn:endsWith('Hello','o')}"></c:out><br><br> 6 7 <book>冰与火之歌</book><br> 8 <c:out value="<book>冰与火之歌</book>"></c:out><br> 9 <c:out value="${fn:escapeXml('<book>冰与火之歌</book>')}" escapeXml="false"></c:out><br><br> 10 11 <c:out value="‘Hello’中‘ll’的index值为:${fn:indexOf('Hello','ll')}"></c:out><br><br>
EL表达式
Expression Language
常与JSTL配合使用,使得JSP页面更直观,写法更简单
格式: ${表达式}
.和[]
{user.sex}
${user["sex"]}
--属性包含特殊符号 ${user["first-name"]}
--属性是变量,动态传值
String name="sex"; ${user[name]}
list取值 ${list[0].属性}
EL变量
JSP内置对象 EL名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
如果取值不写所属对象,那么按照顺序依次查找
Page--Request--Session--Application
如果找不到,返回空字符串
EL自动转换
EL运算符
Empty
EL隐式对象
---恢复内容结束---
JSTL
java中的一个定制标记库集
实现了JSP页面中的代码复用
基于标签库原理,重复率较高的代码块支持复用,提高效率
长的很像XML,方便前端查看与参与开发
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
四大分类
核心标签--最常用
格式化标签
SQL标签
XML标签
核心标签
JSTL的核心标签库共13个,从功能上分类
表达式控制标签:out set remove catch
流程控制标签:if choose when otherwise
循环标签:forEach forTokens
URL操作标签:import url redirect
<!-- c:out -->
<c:out value="${username}" default="error"></c:out><br>
<c:out value="<我是内容>" escapeXml="false"></c:out><br>
1 <!-- c:out --> 2 <c:out value="${username}" default="error"></c:out><br> 3 <c:out value="<我是内容>" escapeXml="false"></c:out><br>
1 <!-- c:set --> 2 <c:set value="today" var="date" scope="page"></c:set> 3 <c:out value="${date}"></c:out><br> 4 5 <c:set var="date1" scope="page">today</c:set> 6 <c:out value="${date1}"></c:out><br> 7 8 <jsp:useBean id="user" class="com.demo.bean.User"></jsp:useBean> 9 <c:set value="张三" property="uName" target="${user}"></c:set> 10 <c:out value="${user.uName}"></c:out><br>
1 <!-- c:remove --> 2 <c:set value="lily" var="firstName"></c:set> 3 <c:remove var="firstName"></c:remove>
1 <!-- c:catch --> 2 <c:catch var="lalala"> 3 <c:set property="a" target="b">abc</c:set> 4 </c:catch> 5 <c:out value="${lalala}"></c:out>
1 <!-- c:if --> 2 <c:if test="${param.score >= 90}" var="result"> 3 <c:out value="成绩优秀"></c:out> 4 </c:if> 5 <c:out value="${result} "></c:out>
1 <!-- c:choose c:when c:otherwise --> 2 <c:choose> 3 <c:when test="${param.score >= 90 && param.score <=100}"> 4 <c:out value="成绩优秀的一逼;分数:${param.score} "></c:out> 5 </c:when> 6 <c:when test="${param.score >= 80 && param.score <= 89}"> 7 <c:out value="成绩凑活吧;分数:${param.score} "></c:out> 8 </c:when> 9 <c:when test="${param.score >= 70 && param.score <= 79}"> 10 <c:out value="啧啧啧,就那样吧;分数:${param.score} "></c:out> 11 </c:when> 12 <c:when test="${param.score >= 60 && param.score <= 69}"> 13 <c:out value="艹,再少就不及格了;分数:${param.score} "></c:out> 14 </c:when> 15 <c:when test="${param.score < 60 && param.score >=0}"> 16 <c:out value="${param.score},就这点? "></c:out> 17 </c:when> 18 <c:otherwise> 19 <c:out value="还能考个正常点的分数吗?<br>什么?地球世界末日了?哦" escapeXml="false"></c:out> 20 </c:otherwise> 21 </c:choose>
forEach
根据循环条件遍历集合中的元素
var设定变量名用于存储从集合中取出的元素
items指定要遍历的集合
begin、end用于指定遍历的起始位置和终止位置
step指定循环步长
varStatus通过index、count、first、last几个状态
描述begin和end集中元素的状态
1 <!-- c:forEach --> 2 <c:forEach var="list" items="${lists}"> 3 <c:out value="${list}"></c:out><br> 4 </c:forEach> 5 <c:out value="=========================="></c:out><br> 6 <c:forEach var="list" items="${lists}" begin="1" end="4"> 7 <c:out value="${list}"></c:out><br> 8 </c:forEach> 9 <c:out value="=========================="></c:out><br> 10 <c:forEach var="list" items="${lists}" varStatus="first"> 11 <c:out value="${list}"></c:out> 12 <c:if test="${first.first == true}"> 13 <c:out value="你是第一个"></c:out> 14 </c:if><br> 15 </c:forEach>
1 <!-- c:forTokens --> 2 <c:forTokens var="nowStr" items="1,2,3,4,5" delims=","> 3 <c:out value="${nowStr}"></c:out> 4 </c:forTokens>
1 <!-- c:import 2 url:被导入资源的url路径 3 Context:相同服务器下不同的web工程:/开头----- 4 tomcat/conf/context.xml中的crossContext="true" 5 <Context crossContext="true"> 6 var:以String类型存入被包含的内容 7 Scope:var变量的JSP范围 8 charEncoding:被导入文件的编码格式 9 carReader:以Reader类型存储被导入文件的内容 --> 10 11 <c:catch var="error09"> 12 <c:import url="http://www.baidu.com" charEncoding="utf-8"></c:import> 13 </c:catch> 14 <c:out value="${error09}"></c:out> 15 <!-- 相对路径 --> 16 <!-- var和scope --> 17 <c:catch var="error07"> 18 <c:import url="tt.txt" charEncoding="gbk" var="tt_txt" scope="page"></c:import> 19 <c:out value="这是自定义内容输出的:${pageScope.tt_txt}"></c:out><br> 20 </c:catch> 21 <c:out value="${error07}"></c:out>
1 <!-- context属性的用法 --> 2 <c:catch var="error06"> 3 <c:import url="/index.jsp" context="/myhome"></c:import> 4 </c:catch> 5 <c:out value="${error06}"></c:out>
<!-- c:redirect --> 实现请求的重定向 url:重定向的地址:String的相对路径或者绝对路径 context:导入其他web应用中的页面
JSTL函数--常用
1 <c:out value="‘你好’中是否包含‘好’这个字:${fn:contains('你好','好')}"></c:out><br> 2 <c:out value="‘你好’中是否包含‘我’这个字:${fn:contains('你好','我')}"></c:out><br> 3 <c:out value="‘Hello’中是否包含‘hello’这个字(忽略大小写):${fn:containsIgnoreCase('Hello','hello')}"></c:out><br> 4 <c:out value="‘ Hello’中‘H’是否为开头字母:${fn:startsWith('Hello','H')}"></c:out><br> 5 <c:out value="‘Hello’中‘o’是否为结尾字母:${fn:endsWith('Hello','o')}"></c:out><br><br> 6 7 <book>冰与火之歌</book><br> 8 <c:out value="<book>冰与火之歌</book>"></c:out><br> 9 <c:out value="${fn:escapeXml('<book>冰与火之歌</book>')}" escapeXml="false"></c:out><br><br> 10 11 <c:out value="‘Hello’中‘ll’的index值为:${fn:indexOf('Hello','ll')}"></c:out><br><br>
EL表达式
Expression Language
常与JSTL配合使用,使得JSP页面更直观,写法更简单
格式: ${表达式}
.和[]
{user.sex}
${user["sex"]}
--属性包含特殊符号 ${user["first-name"]}
--属性是变量,动态传值
String name="sex"; ${user[name]}
list取值 ${list[0].属性}
EL变量
JSP内置对象 EL名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
如果取值不写所属对象,那么按照顺序依次查找
Page--Request--Session--Application
如果找不到,返回空字符串
EL自动转换
EL运算符
Empty
EL隐式对象
如有理解不当或建议,欢迎指正