17.4JSTL标签库之核心标签

一、JSTL标签库介绍

JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的。使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码

二、JSTL标签库的分类

  • 核心标签(用得最多)
  • 国际化标签(I18N格式化标签)
  • 数据库标签(SQL标签,很少使用)
  • XML标签(几乎不用)
  • JSTL函数(EL函数)

三、核心标签库使用说明

JSTL的核心标签库标签共13个,使用这些标签能够完成JSP页面的基本功能,减少编码工作。

从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。

  • 1、表达式控制标签:out标签、set标签、remove标签、catch标签。
  • 2、流程控制标签:if标签、choose标签、when标签、otherwise标签。
  • 3、循环标签:forEach标签、forTokens标签。
  • 4、URL操作标签:import标签、url标签、redirect标签、param标签。

在JSP页面引入核心标签库的代码为:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

下面介绍用的最多也最核心的流程控制和循环标签,其余标签用法可以参照:
javaWeb学习总结(9)- JSTL标签库之核心标签

3.1、表达式控制标签——if标签使用总结

标签的功能标签和程序中的if语句作用相同,用来实现条件控制。

标签的语法

【语法1】:没有标签体内容(body)

【语法2】:有标签体内容

标签体内容

参数说明】:

  • (1)test属性用于存放判断的条件,一般使用EL表达式来编写。
  • (2)var属性用来存放判断的结果,类型为true或false。
  • (3)scopes属性用来指定var属性存放的范围。

标签的使用范例

cif.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%--引入JSTL核心标签库 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>



    JSTL: --流程控制标签 if标签示例



    

if标签示例


<%--使用if标签进行判断并把检验后的结果赋给adminchock,存储在默认的page范围中。 --%> <%--可以把adminchock的属性范围设置为session,这样就可以在其他的页面中得到adminchock的值, 使用判断,实现不同的权限。 --%> <%--使用EL表达式得到adminchock的值,如果输入的用户名为admin将显示true。 --%> ${adminchock}

3.2、流程控制标签——choose标签、when标签、otherwise标签配合使用讲解

标签的功能
这3个标签通常情况下是一起使用的,标签作为标签的父标签来使用。
使用三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。

语法

 
         
      //业务逻辑1
         
   
      //业务逻辑2
         
   
      //业务逻辑n
         
         
      //业务逻辑
   
 

使用范例

cchoose.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%--引入JSTL核心标签库 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


  
    JSTL: -- choose及其嵌套标签标签示例
  
  
  
    

choose及其嵌套标签示例


<%--通过set标签设定score的值为85 --%> <%--使用进行条件判断。 如果大于等于90,输出“您的成绩为优秀”; 如果大于等于70小于90,输出“您的成绩为良好”; 大于等于60小于70,输出“您的成绩为及格”; 其他(otherwise)输出“对不起,您没能通过考试”。 --%> 你的成绩为优秀! 您的成绩为良好! 您的成绩为及格 对不起,您没有通过考试!

3.3循环标签——forEach标签使用总结

标签的功能

该标签根据循环条件遍历集合(Collection)中的元素。

标签的语法


    本体内容

【参数解析】:

  • (1)var设定变量名用于存储从集合中取出元素。
  • (2)items指定要遍历的集合。
  • (3)varStatus设定变量名,该变量用于存放集合中元素的信息。
  • (4)begin、end用于指定遍历的起始位置和终止位置(可选)。
  • (5)step指定循环的步长。

使用范例

cforeach.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%--引入JSTL核心标签库 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page import="java.util.ArrayList"%>


  
    JSTL: -- forEach标签实例
  
  
  
   

<% Listlist = new ArrayList(); list.add(0, "贝贝"); list.add(1, "晶晶"); list.add(2, "欢欢"); list.add(3, "莹莹"); list.add(4, "妮妮"); request.setAttribute("list", list); %>
<%--不使用begin和end的迭代,从集合的第一个元素开始,遍历到最后一个元素。 --%>

<%--指定begin的值为1、end的值为3、step的值为2, 从第二个开始首先得到晶晶,每两个遍历一次, 则下一个显示的结果为莹莹,end为3则遍历结束。 --%>

<%--指定varStatus的属性名为s,并取出存储的状态信息 --%> 的四种属性:
所在位置,即索引:
总共已迭代的次数:
是否为第一个位置:
是否为最后一个位置:

JSTLjar包依赖

 
     javax.servlet
     javax.servlet-api
     3.1.0


     javax.servlet
     jsp-api
     2.0
     provided


    javax.servlet
     jstl
     1.2

前两个是servlet依赖,第三个是jstl的jar,版本为1.2

在实际开发中,判断标签和循环标签用的最多,这两个务必要认真掌握,才能在实际开发中游刃有余。

源码下载

本例子详细源码

你可能感兴趣的:(17.4JSTL标签库之核心标签)