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="&lt我是内容&gt" escapeXml="false"></c:out><br>
1 <!-- c:out -->
2 <c:out value="${username}" default="error"></c:out><br>
3 <c:out value="&lt我是内容&gt" 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="&lt我是内容&gt" escapeXml="false"></c:out><br>

 

1 <!-- c:out -->
2 <c:out value="${username}" default="error"></c:out><br>
3 <c:out value="&lt我是内容&gt" 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隐式对象

 

如有理解不当或建议,欢迎指正

posted @ 2019-03-27 14:14  不放糖的咖啡  阅读(244)  评论(0编辑  收藏  举报