JSTL表达式
参考文档:https://www.runoob.com/jsp/jsp-jstl.html
1、下载
先下载两个Jar包,并添加到环境变量中:
1、jstl-1.2.jar
2、standard-1.1.2.jar
2、通过taglib指令导入核心库
在jsp文件导入核心库
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c"%>
Core (核心库) 标签库的URI:http://java.sun.com/jsp/jstl/core 常用前缀:c
I18N(国际化) 标签库的URI:http://java.sun.com/jsp/jstl/fmt 常用前缀:fmt
SQL 标签库的URI:http://java.sun.com/jsp/jstl/sql 常用前缀:sql
XML 标签库的URI:http://java.sun.com/jsp/jstl/xml 常用前缀:x
Functions 标签库的URI:http://java.sun.com/jsp/jstl/functions 常用前缀:fn
3、核心标签库
a.通用标签库
< c:set > 标签:
< c:set >标签用于设置变量值和对象属性。
1、< c:set >标签有如下属性:
属性 描述 value 要存储的值 target 要修改的属性所属的对象 property 要修改的属性 var 存储信息的变量 scope var属性的作用域 2、在某个作用域中(4个范围对象),给某个变量赋值
<c:set var=" " value=" " scope=" " />
例:
<c:set var="name" value="lin" scope="request" />
在request中给变量名"name" 赋值为"lin",等价于Java表达式:
<% request.setAttribute("name", "lin"); %>
也等价于EL表达式:
${requestScope.name}
3、在某个作用域中(4个范围对象),给某个对象的属性赋值
<c:set target="对象" property="对象的属性" value = "赋值" scope = " "/>
例:(这种写法不能指定scope属性)
< c:set target = "${requestScope.student}" property = "name" value = "lin"/>
4、给Map对象赋值:
略
5、给不存在的变量赋值:
<c:set var="x" value="y" scope="request" />
x为没有定义的对象,但是不能给不存在的对象赋值。
< c:out > 标签 :
< c:out >标签用来显示一个表达式的结果,与<%= %>作用相似,它们的区别就是< c:out >标签可以直接通过"."操作符来访问属性。
1、传统EL表达式输出:
${requestScope.student}
c:out 方式:
<c:out value="${requestScope.name}"></c:out>
2、c:out 可以显示不存在的数据:
<c:out value=" " default = " ">
如果数据不存在则会返回default的值。
3、escapeXml忽略XML特殊字符
如果escapeXml属性的值为false,则会显示出value标签的样式,为true时这输出标签的文字
<c:out value = '<a href="www.baidu.com">百度</a>' escapeXml="ture"/>
< c:remove > 标签
< c:remove >标签用于移除一个变量,可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。这个标签不是特别有用,不过可以用来确保JSP完成清理工作。
1、 < c:remove >标签有如下属性:
属性 描述 var 要移除的变量名称 scope 变量所属的作用域 2、语法格式:
<c:remove var="<string>" scope="<string>"/>
< c: if >标签
< c:if >标签判断表达式的值,如果表达式的值为 true 则执行其主体内容。
1、< c:if >标签有如下属性:
属性 描述 test 条件 var 用于存储结果的变量(true或false) scope 变量所属的作用域 2、实例:
<c:if test="<boolean>" var="<string>" scope="<string>">
< c: choose > < c: when >< c: otherwise >标签
与Java switch语句的功能一样,用于在众多选项中做出选择。
switch语句中有case,而< c:choose >标签中对应有< c:when >,switch语句中有default,而< c:choose >标签中有< c:otherwise >
语法规则如下:
<c:choose> <c:when test="<boolean>"> ... </c:when> <c:when test="<boolean>"> ... </c:when> ... ... <c:otherwise> ... </c:otherwise> </c:choose>
< c:forEach >标签
1、< c:forEach >标签有如下属性:
属性 描述 items 要被循环的信息 begin 开始的元素(0=第一个元素,1=第二个元素) end 最后一个元素(0=第一个元素,1=第二个元素) step 每一次迭代的步长 var 代表当前条目的变量名称 varStatus 代表循环状态的变量名称 2、< c:forEach >语法格式:
<c:forEach items="<object>" begin="<int>" end="<int>" step="<int>" var="<string>" varStatus="<string>">