JSP 标准标签库(JSTL)

来源:互联网 发布:广州天拓网络待遇 编辑:程序博客网 时间:2024/05/22 17:31

一、JSP表达式语言EL

在使用基于MVC架构模式的web应用开发中,JSP页面通过标准动作jsp:useBean和jsp:getProperty,得到存储在作用域中的Bean属性数据,显示在页面上。但是这两个元素冗长而笨拙,且jsp:getProperty只支持对简单的Bean属性的访问,如果Bean的属性是集合或者另外的Bean,那么,对子属性的访问需要用到复杂的Java脚本。

Eg:示例两个javaBean ,Person类包含一个name属性和一个Dog类型的属性,Dog类包含一个name属性

<%@page language="java" contentType="text/html;charset=UTF-8"

   pageEncoding="UTF-8"%>

<!DOCTYPEhtml PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>Inserttitle here</title>

</head>

<body>

${person.dog.name}

</body>

</html>

1EL表达式和JSP脚本表达式

区别:1EL表达式以“${”开始,以“}”结尾;

        JSP脚本表达式以“<%”开始,以“%>”结尾

      2二者处理内部表达式的方式

Eg: <%!int i=100; %>

i的值是<%=i%>

i的值是${i} //返回一个未定义的值

2、在EL表达式中使用隐式变量

3、EL运算符

      1)用于访问属性和集合的EL运算符

                1a.b:返回a的属性b的值

                 2a[b]:返回a的键或索引为b的值

       2)EL算术、关系、逻辑运算符

4EL函数

将EL函数插入到JSP页面的过程共包含创建和更改四个文件:

1)   创建静态方法(.java)

注意:1方法必须被声明为static和public,而方法所属的类必须声明为public。这样servlet就可以直接访问该类及其方法,而不用创建一个新对象;2方法的参数和返回值必须在EL中是有效的;

3类文件必须保存在/WEB-INFO/classes目录下。

2)   创建标记库描述文件(TLD)

3)   更改部署描述文件

4)   在JSP内访问EL函数

二、标准标记库JSTL

根据JSTL标签所提供的功能,可以将其分为5个类别。

·        核心标签

·        格式化标签

·        SQL标签

·        XML标签

·        JSTL函数

·        核心标签是最常用的JSTL标签。引用核心标签库的语法如下:

·        <%@ taglib prefix="c"

·                   uri="http://java.sun.com/jsp/jstl/core"%>

标签

描述

<c:out>

用于在JSP中显示数据,就像<%= ... >

<c:set>

用于保存数据

<c:remove>

用于删除数据

<c:catch>

用来处理产生错误的异常状况,并且将错误信息储存起来

<c:if>

与我们在一般程序中用的if一样

<c:choose>

本身只当做<c:when><c:otherwise>的父标签

<c:when>

<c:choose>的子标签,用来判断条件是否成立

<c:otherwise>

<c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行

<c:import>

检索一个绝对或相对 URL,然后将其内容暴露给页面

<c:forEach>

基础迭代标签,接受多种集合类型

<c:forTokens>

根据指定的分隔符来分隔内容并迭代输出

<c:param>

用来给包含或重定向的页面传递参数

<c:redirect>

重定向至一个新的URL.

<c:url>

使用可选的查询参数来创造一个URL

 

1、通用标记

<c:catch>:不会自己执行例程,但是会将抛出的异常保存到<c:catch>标记的var属性中

<c:out>:此标记的功能就是显示value的值,还可以设置默认值

Eg: <c:out  value=”${color}”  default=”red”>

2、变量支持标记

<c:set>:设置变量和对象的值,还可以操作JavaBean和java.util.Map对象。Eg: <c:set var=”num”  value=”${4*4}”>

<c:set  target=”customer”  property=”zipcode”  value=”55501”>

<c:remove>:将一个变量从其作用域中删除,不能用于avaBean和java.util.Map对象。

3、流程控制

     1)条件处理:<c:if>和<c:choose>都需要一个用于设置布尔表达式的test属性

<c:if  test=”${x==9}”>${x}</c:if>

     2)循环:<c:forEach>和<c:forTokens>

4、用JSTL访问URL信息

     <c:url>:重写url并对其编码

     <c:import>:访问web应用程序之外的内容

     <c:redirect>:重定向到不同的url

0 0
原创粉丝点击