JSTL核心标签库

概念

JavaServer Pages Tag Library  JSP标准标签库

作用

用于简化和替换jsp页面上的java代码

使用步骤

1、导入jstl相关jar包

官网下载:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

javax.servlet.jsp.jstl.jar 、jstl-impl.jar文件拷贝到 /WEB-INF/lib/ 下。

2、引入标签库:taglib指令

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

3、使用标签

标签

标签说明
<c:out>将表达式的值输出到jsp页面中,相当于jsp表达式<%=表达式%>
<c:set>在指定范围中定义变量,或为指定的对象设置属性值
<c:remove>从指定的jsp范围中移除指定的变量
<c:catch>捕获程序中出现的异常,相当于Java语言的try...catch语句
<c:import>导入站内或者其他网站显示静态和动态文件到web页面中
<c:redirect>将客户端发出的request请求·重定向到其他的URL服务端
<c:url>使用正确的URL重写规则构造一个URL
<c:param>为其他标签提供参数信息,通常与其他标签结合使用
<c:if>根据不同的条件去处理不同的业务逻辑,与Java语言中的if语句类似,只不过该语句没有else语句

<c:choose>

<c:when>

<c:otherwise>

根据不同的条件去完成指定的业务逻辑,如果没有符合的条件,则会执行默认的业务逻辑,相当于Java语句的switch语句
<c:forEach>根据循环条件遍历数组和集合类中的所有或部分数据
<c:forTokens>迭代字符串中由分隔符分隔的各个成员

 <c:out>输出标签

将表达式的值输出到jsp页面中,相当于jsp表达式<%=表达式%>

<c:out value="<string>" default="<string>" escapeXml="<true|false>"/>

属性 

属性描述
value用于指定将要输出的变量或者表达式
default可选属性,用于指定value属性值等于null时,将要显示这个默认的值,没有指定这个属性,并且value属性的值为null,该标签将输出空字符串。
escapeXml

可选属性,   用于指定是否转换特殊字符串,其值为true|false

默认是true,表示转换,将html标签转换为转义字符,在页面显示出html标签,false就会将其解析出来。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
<head>
<title>out 标签实例</title>
</head>
<body>
    <h1>&lt;c:out&gt; 实例</h1>
        <c:out value="<hr>要显示的数据对象(未使用转义字符)<hr>" escapeXml="true" default="默认值"></c:out><br/>
          <c:out value="<hr>要显示的数据对象(使用转义字符)<hr>" escapeXml="false" default="默认值"></c:out><br/>
    <c:out value="${null}" escapeXml="false">使用的表达式结果为null,则输出该默认值</c:out><br/>
</body>
</html>

 escapeXml为false的有下划线

 <c:set>变量设置标签

属性

属性描述是否必要默认值
value要存储的值主体的内容
target要修改的属性所属的对象
property要修改的属性
var存储信息的变量
scopevar属性的作用域Page
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
</head>
<body>
<c:set var="salary" scope="session" value="${username}"/>
<c:out value="${salary}"/>
</body>
</html>

  <c:if>条件判断标签

<c:if>标签可以根据不同的条件处理不同的业务,它与Java语言的if语句类似

语法格式

<c:if test="<boolean>" var="<string>" scope="<string>">
   ...
</c:if>

属性 

属性描述
test必选属性,用于指定条件表达式,可以使用EL
var可选属性,用于指定变量名,该变量用于保存test属性判断的结果
scope用于指定变量的有效范围,默认值是page
<c:if test="${salary > 2000}">
   <p>我的工资为: <c:out value="${salary}"/><p>
</c:if>

<c:choose>, <c:when>, <c:otherwise> 标签

<c:choose>标签与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:choose>标签没有属性

<c:when>标签只有一个属性,在下表中有给出

<c:otherwise>标签没有属性

<c:when>标签的属性如下:

属性描述是否必要默认值
test条件
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>标签实例</title>
</head>
<body>
<c:set var="salary" scope="session" value="${2000*2}"/>
<p>你的工资为 : <c:out value="${salary}"/></p>
<c:choose>
    <c:when test="${salary <= 0}">
       太惨
    </c:when>
    <c:when test="${salary > 1000}">
       不错的薪水
    </c:when>
    <c:otherwise>
        什么都没有。
    </c:otherwise>
</c:choose>
</body>
</html>

<c:forEach>标签

这些标签封装了Java中的for,while,do-while循环。

属性描述
items用于指定被循环的对象,多用于数组和集合
var用于指定循环体的变量,就是存储item指定的对象的
begin用于指定循环的起始位置,如果没有指定,就是从集合的第一个开始迭代(可选属性)
end用于指定循环的终止位置,如果没有指定,就是循环到集合的最后一位(可选属性)
step用于指定循环的步长
varStatus用于指定循环的状态变量,该属性有4个状态属性,如下表
标签体可以是jsp页面的能显示的任何属性

状态属性 

变量类型描述
indexint当前循环的索引值,从0开始
countint当前循环的循环计数,从1开始
firstboolean是否为第一次循环
lastboolean是否为最后一次循环
<c:forEach items="${key}" var="goodsList" varStatus="status">
       <div class="goods_one1">
            <a href="item?itemId=${goodsList.id}"><img src="${goodsList.image}"></a>
            <span style="color: red; font-weight: 1000;">¥${goodsList.price}</span>
            <span style="color:whitesmoke;background-color: red;">&nbsp;包邮</span>
            <span class="buy_numbers1">9000+人付款</span><br>
            <a href="goods1.jsp">${goodsList.name}</a>
       </div>
</c:forEach>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值