jstl标签库常用的关键字有:
<c:if>、<c:else>、<c:choose>、<c:when>、<c:otherwise>、<c:foreEach>、<c:set>、<c:out>、<c:param>、<c:url>、<c:remove>、<c:redirect>、<c:import>.
jsp标准标记库(Java Standard Tag Library , JSTL)是由一组以标准化格式是现在许多通用的Web站点功能的定制标记。
JSTL的目标是为了简化JSP页面的设计,对于页面设计人员来说,使用脚本语言(默认是Java语言)操作动态数据是比较困难的,而采用标签和表达式语言相对容易一些,JSTL的使用为页面设计人员和程序开发人员的分工协作提供了便利。
一:配置JSTL
首先应该下载导入两个jar文件,分别是 jstl.jar 和 standard.jar .
配置代码引入:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
二:core标签库
core标签库主要包括了一般用途的标签,条件标签、迭代标签和URL相关的标签,在JSP页面使用Core标签,必须要使用taglib指令,指定引用的标签库,例如:
<%@ taglib rui=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>
一般用途的标签有:<c:out>、<c:set>、<c:remove>、<c:catch>
1.<c:out>
用于计算一个表达式并将结果输出。类似于JSP中的<%=%>表达式,或者是EL中的${el-expression}.
2:<c:set>
用于设置范围变量的值或者JavaBean对象的属性。
实例:
<c:set var="username" value="tom" scope="session"/>
这就相当于设置了session
3:<c:remove>
相对于<c:set>来说,它的的作用是移除范围变量。比如:
<c:remove var="username" scope="session"/>
4:<c:catch>
用于捕获在其中嵌套的操作所抛出的异常对象,并将异常信息保存到变量中。
一般来说,我们将有可能抛出异常的代码放置到开始标签<c:catch>和结束标签</c:catch>之间。如果其中代码出现异常,异常对象将被捕获,保存在申明的变量中,该变量总是有page范围。如果没有发生异常,而var所标识的范围变量将被移除。
如果没有指定var属性,异常只是简单的被捕获,异常信息并不会被保存。
例子:
<c:catch var="exception">
<%
int i = 5;
int j = 0;
int k =i/j;
%>
</c:catch>
<c:out value="${exception}"/><br>
<c:out value="${exception.massage}"/>
后一句相当于:exception.getMessage()
条件标签包括:<c:if><c:choose><c:when><c:otherwise>
1:<c:if>
用于实现Java中的if语句功能。
<c:if test="${user.visitCount==1}">
This is your first visit;
</c:if>
若为true,会打印中间部分。也可以声明var,方便下一步判断。
<c:if test="${param.name=='admin' value=""result}"/>
<c:out value="${result}"/>
2:<c:choose>
<c:choose>和<c:when>、<c:otherwise>一起实现互斥条件执行,类似于java中的if else
<c:choose>一般作为<c:when>、<c:otherwise>的父标签。
例如:
<c:choose>
<c:when test="${row.value<100}">
初级
</c:when>
<c:when test="${row.value>=100&&row.value<1000}">
中级
</c:when>
<c:otherwise">
高级
</c:otherwise>
</c:choose>
迭代标签:
迭代标签有<c:forEach></forEach>
<c:forEach items="${yearList }" var="year">
<option value="${year.culitBatchId}"
<c:if test="${year.culitBatchId == yearId}">selected</c:if>>${year.cultivateBatchName}
</option>
</c:forEach>
还可以设定固定次数:
<c:forEach var="i" begin="100" end="200" step="2">
${ i }
</c:forEach>
step="2" 表示每次增长数为2
三. sql 标签
设置数据源:
<sql:setDataSource dataSource="proxool.breadTycoon" />
// 将数据库某查询的结果声明为一个变量
<sql:query var="finalResult" >
select player_name,money from tb_player order by money DESC LIMIT 10
</sql:query>
然后可以:
<c:forEach items="${ finalResult.rows}" var="row" varStatus="s">
advCosts[${s.index}]=${row.adv_cost};
</c:forEach>
数据更新标签:
<sql:update>
call proc_set_role_salespro(?,?,?,?,?);
<sql:param value="30"/>
<sql:param value="39"/>
<sql:param value="<%=spID%>"/>
<sql:param value="<%=productID%>"/>
<sql:param value="1"/>
</sql:update>
<sql:query var="queryAllChannelCount">
SELECT COUNT(*) as total FROM tb_channel WHERE game_id=? AND begin_round<func_cur_round(?) AND player_id=? AND channel_flag=0
<sql:param value="${gameID}"/>
<sql:param value="${gameID}"/>
<sql:param value="${playerID}"/>
</sql:query>
<c:forEach items="${queryAllChannelCount.rowsByIndex}" var="channelCN">
<c:set value="${channelCN[0]}" var="channelTotal"/>
</c:forEach>
调用存储过程更新数据库:
<c:if test="${param.changsubmit!=null}" >
<c:forEach items="${paramValues.pro_id}" var="getpro_id" varStatus="getparamsta">
<sql:update>
call proc_set_role_product(?,?,?,?,?,?,?,?);
<sql:param value="${gameID}"/>
<sql:param value="${playerID}"/>
<sql:param value="${getpro_id}"/>
<sql:param value="${getpro_id}"/>
<sql:param value="${paramValues.pro_sort[getparamsta.index]}"/>
<sql:param value="${paramValues.price[getparamsta.index]}"/>
<sql:param value="${paramValues.output[getparamsta.index]}"/>
<sql:param value="0"/>
</sql:update>
</c:forEach>
</c:if>
相关推荐
JAVAEE 实验报告 EL 表达式和 JSTL 标签库的使用 EL 表达式(Expression Language)是一种在 JSP 页面中使用的脚本语言,用于简化 JSP 页面的开发。EL 表达式可以访问 JSP 页面中的变量、对象和集合,进行逻辑操作...
**JSTL标签库及其使用方法** JavaServer Pages Standard Tag Library(JSTL)是Java社区为简化JSP页面开发而推出的一个标准标签库。它提供了丰富的功能,如迭代、条件判断、XML处理、国际化等,使代码更加简洁、易...
本篇文章将深入探讨JSTL标签库的配置过程及其在实际应用中的作用。 首先,我们要理解**JSTL的核心组件**。JSTL主要由五个核心部分组成:Core、Format、I18N、SQL和XML。其中,Core组件包含了大部分用于控制流程、...
二、JSTL标签库 JSTL是Java Web开发的标准标签库,它包含五个核心部分:Core、Format、I18N、XML和SQL。这些标签提供了丰富的功能,例如控制流、格式化、国际化、XML处理和数据库操作。 1. **Core标签**:包括if、...
以下是关于JSTL标签库所需导入的JAR包及其功能的详细解释: 1. **jstl.jar**:这是核心JSTL库,包含了大部分常用的标签,如 `<c:if>`, `<c:forEach>`, `<fmt:formatDate>` 等。这些标签提供了条件判断、循环、格式...
每个`taglib`元素定义了一个TLD(Tag Library Descriptor)文件的位置,这告诉服务器JSTL标签库的位置和元数据。 总之,JSTL通过提供丰富的标签来增强JSP页面的功能,而解决"无法解析绝对uri"的错误通常涉及到正确...
- 使用JSTL标签库可以提高代码的可读性和可维护性,降低HTML和Java代码的混合程度。 - 结合EL,可以进一步减少脚本let的使用,使JSP页面更加整洁。 - 注意,JSTL的SQL标签库不适用于复杂的数据库操作,现代Web应用...
### JSTL标签库及其下载 #### JSTL概述 JSTL(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一组用于开发JavaServer Pages页面的标准标签集合。这些标签简化了JSP页面的编写工作,使...
**JSTL标签库与JAR包详解** JavaServer Pages Standard Tag Library(JSTL)是Java EE领域中用于简化JSP开发的一个重要工具。它提供了一组预定义的标签,帮助开发者更高效地处理常见任务,如迭代、条件判断、国际化...
JSTL(JavaServer Pages Standard Tag Library)是Java Web开发中一个重要的标签库,主要用于简化JSP页面中的Java代码,提高JSP页面的可读性和维护性。在Tomcat 10这个高性能、轻量级的Servlet容器中,JSTL的使用...
【JSTL标签库】是Java服务器页面(JSP)中的一种重要工具,它旨在增强HTML表单的功能,规范自定义标签的使用,以适应软件开发的分层设计原则,避免在JSP页面中混杂Java逻辑代码。JSTL(JavaServer Pages Standard ...
**JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中常用的一组预定义的HTML和XML标签,用于简化JavaServer Pages(JSP)开发。它提供了更面向声明的编程方式,使开发者可以更专注于业务逻辑...
JSTL(JavaServer Pages Standard Tag Library)是Java服务器页面标准标签库,它为JSP开发者提供了一系列预定义的、可重用的标签,以简化网页开发过程,提高代码的可读性和可维护性。JSTL主要由以下几个核心部分组成...
EL表达式与JSTL标签库,挺实用的工具
在本资源包中,你将找到两个重要的JSTL相关文件——`jstl.jar`和`standard.jar`,以及一个名为`JSTL标签库配置.doc`的文档,它们是配置和使用JSTL标签库所必需的。 **一、jstl.jar和standard.jar** 1. **jstl.jar*...
JSTL(JavaServer Pages Standard Tag Library)是一个用于JSP的标准标签库,它提供了一系列预定义的标签,简化了常见的编程任务,如控制流程、输出处理、URL管理和数据操作等。JSTL的核心标签库(Core Library)是...
### JSTL标签库知识点详解 #### 1. JSTL简介 JSP标准标签库(JSTL)是Sun Microsystems公司推出的一款用于简化JSP页面开发的强大工具。它的主要目的是减少页面脚本代码量,使得JSP页面更加易于维护和阅读。JSTL...