-
什么是jstl以及为什么要使用jstl
查看全部 -
常用 JSTL 函数
查看全部 -
JSTL
一、环境搭建
1.下载:http://archieve.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip
2.将zip包中的standard.jar jstl.jar 导入项目中
3.jsp页面引入jstl核心标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
二、JSTL标签的四大分类及JSTL函数
·核心标签 -最常用,最重要
·格式化标签
SQL标签
XML标签
·JSTL函数
变量通过EL(Expression Language)表达式获取
·EL表达式格式 ${表达式}
1"."与"[]"运算符
·通常情况是通用的${user.sex} ${user["sex"]}
·"[]"还可以用来进行集合元素中的定位 ${booklist[0].price}
·2种情况不能通用
(1)包含特殊字符 ${user.first-name} ${user["first-name"]}
(2)通过变量动态取值:${user[param]}
·param可以是name or sex or others
·"."的写法是${user.name} or ${user.sex} or...
·EL变量
·EL自动类型转换
·EL隐式对象
·EL运算符
·表达式控制标签详解-out
-输出常量 可在value属性中直接复制
-输出变量 变量不存在是可配合default属性输出默认值,还可以通过escapeXml控制转义字符的输出方式(需要变成转移字符时escapeXml="false")
·表达式控制标签详解-set
-存值到scope中 可将值以变量形式存放到制定范围中(2种方式)
<c:set value="today" var="day" scope="session"></c:set>
<c:set var="day" scope="application">today</c:set>
-存值到JavaBean的属性中 需要配合target属性指定对象并且通过property属性指定要赋值给对象中的哪个属性
<c:set target="${person}" property="name" value="zhangsan"></c:set>
·表达式控制标签详解-remove
-remove掉某个变量 -var属性必选 -scope属性是可选
<c:remove var="day"/> -remove只能remove掉某个变量,不能remove某个对象中的属性
·表达式控制标签详解-catch
-catch标签中可以包含那些容易出错的JSTL标签
<!--将错误信息存放到名为error的变量中-->
<c:catch var="error">
</c:catch>
·流程控制标签详解-if
-用来实现分支条件控制
<c:if test="" var="" scope=""></c:if>
·test属性用于存放判断的条件,一般使用EL表达式来编写
·var指定名称用来存放判断的结果类型为true或false
·scope用来存放var属性存放的范围
·流程控制标签详解-choose,when,otherwise
-通常这三个标签被放在一起配合使用
- <c:choose>标签嵌套在<c:when>和<c:otherwise>标签的外面作为他们的父标签来使用
-其中choose和when标签也可以一起组合使用
<c:choose>
<c:when test="判断条件">
//业务逻辑1
</c:when>
<c:when>
//业务逻辑2
</c:when>
<c:otherwise>
//业务逻辑3
</c:otherwise>
</c:choose>
·循环控制标签详解-forEach
-根据循环条件遍历集合(Collection)中的元素
·var设定变量名用于存储从集合中取出元素(必须 无默认值)
·items指定要遍历的集合(必须 无默认值)
·begin、end用于指定遍历的起始位置和终止位置(有默认)
·step指定循环的步长(有默认)
·varStatus通过index,count,first,last几个状态值,描述begin和end子集中的元素状态
<c:forEach var="fruit" items="${fruits}" begin="1" end="4" varStatus="fru">
<c:out value="${fruit}属性${fru.index} ${fru.count}"></c:out>
</c:forEach>
·循环控制标签详解-forTokens
-用于浏览字符串,并根据定的字符将字符串截取
·items指定被迭代的字符串
·delims指定使用的分隔符
·var指定用来存放遍历到的成员
·begin指定遍历的开始位置(int型从取值0开始)
·end指定遍历结束的位置(int型,默认集合中最后一个元素)
·step遍历的步长(大于0的征整型)
·varStatus通过index,count,first,last几个状态值,描述begin和end子集中的元素的状态
<c:forTokens items="024-01233455-123" delims="-" var="num">
<c:out value="${num}"></c:out>
</c:forTokens>
·URL操作标签详解-import
-把其他静态或动态文件包含到JSP页面
-同<jsp:include>的区别为:只能包含同一个web应用中的文件。
而<c:import>可以包含其他web应用中的文件,甚至是网络上的资源。
<c:import url="" context="" var="" scope="" charEncoding="" varReader="">
</c:import>
·url被导入资源的URL路径(可以是绝对路径也可以是相对路径)
·context相同服务器下其他的web工程,必须以"/"开头
context引入的内容是webapps下的其他Web project
1.修改tomcat的发布路径
2.修改%TOMCAT_HOME%/conf/context.xml的Context标签中的属性 crossContext="true"
·var以String类型存入被包含文件的内容
·Scope var变量的JSP范围
·charEncoding被导入文件的编码格式
·varReader以Reader类型存储被包含文件内容
·URL操作标签详解-redirect
-该标签用来实现请求的重定向,同时可以在url中加入指定的参数
·url指定重定向页面的地址,可以是一个String类型的绝对地址或相对地址
·context用于导入其他web应用中的页面
<!--<c:param>位参数,可选项-->
<c:redirect url="firstDEmo.jsp">
<c:param name="username">Lily</c:param>
<c:param name="password">111111</c:param>
</c:redirect>
·URL操作标签详解-url
-该标签用于动态生成一个String类型的URL,可以同<c:param>标签共同使用,也可以使用html的<a>标签实现超链接
·value表示url路径值
·var 将url路径存储在变量中
·scope var变量的范围
<c:if test="${0==num}">
<c:set var="partUrl">aa</c:set>
</c:if>
<c:url value="http://loacalhost:8080/${partUrl}" var="newUrl" scope="session"></c:url>
<a href="${newUrl}">新的URL</a>
·常用JSTL函数
·要在页面添加 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
菜鸟教程 http://www.runoob.com/jsp/jsp-jstl.html
查看全部 -
set 存值到scope中 存值到javabeen属性中查看全部
-
<jap:userbeen id = “” class=“”><>. 中实例化Java对象查看全部
-
<out标签>查看全部
-
escape为false 进行转译 value =“>out 标签lt” 输出为_>out标签<查看全部
-
在取值时得先向某些scope赋值查看全部
-
$(empty user)查看全部
-
存到scope的map结构中查看全部
-
El表达式是从内置元素中获取对象的值 所以这里 随便取了个内置对象赋值 satring user=“zhangsan” seq.setattribute(“user”,user)查看全部
-
从页面获取的值req.getparameter(count)是 string 需要integer.perset...()转化为数字进行加减 el表达式不需要 只需要${param(count)+20}查看全部
-
${user}如果 page request session application 中都没有user el表达式会输出 空字符串查看全部
-
c:out变量由el表达式获取查看全部
-
c:out查看全部
举报