JSTL标签

来源:互联网 发布:知道交换机ip查端口号 编辑:程序博客网 时间:2024/04/29 07:52

JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)

JSTL提供了核心标签库、格式标签库、SQL标签库、XML标签库和函数标签库5中标签库。

核心标签库

核心标签库主要用于完成JSP页面常用功能,其中包括JSTL的表达式标签,条件标签,循环标签和URL标签。

格式标签库

格式标签库提供了一个简单的国际化(I18N)标记,用于处理国际化相关问题,另外格式标签库中还包含了用于格式化数字和日期显示格式的标签。

SQL标签库

SQL标签库封装了数据库访问的通用逻辑,简化了对数据库的访问,如果结合核心标签库,可以很方便的获取结果集,并迭代输出结果集中的数据。

XML标签库

XML标签库可以处理和生成XML标记,使用这些标记可以很方便的开发基于XML的Web应用。

函数标签库

函数标签库提供了一系列字符串操作函数,用于完成分解字符串,连接字符串,返回子串,确定字符串是否包含特定的子串等功能。

在使用JSTL标签之前,必须在JSP页面的首行使用<%@ taglib%>指令定义标签库的位置和访问前缀。

标签库名称资源标示符(uri)前缀(prefix)核心标签库http://java.sun.com/jsp/jstl/corecXML标签库http://java.sun.com/jsp/jstl/xmlx数据库标签库http://java.sun.com/jsp/jstl/sqlsql格式化标签库http://java.sun.com/jsp/jstl/fmtfmt函数标签库http://java.sun.com.jsp/jstl/functionsfn

表达式标签

表达式标签主要包括<c:out>,<c:set>,<c:remove>,<c:catch>4个标签。

<c:out>输出标签

<c:out>输出标签用于将表达式的值输出到JSP页面中,该标签可以代替<%= %>。类似于JSP内置对象中的out。

语法:

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

其中value用于指定将要输出的变量或表达式;escapeXML用于指定是否转换特殊字符,默认为TRUE,表示转换,例如:将"<"转换为"&lt;"default 用于指定当value值等于null时,将要显示的默认值。

其中value可以使用EL表达式,而其他不可以使用EL表达式。

例如:使用<c:out>标签输出字符串"水平线标记<hr>"。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>      <title>My JSP 'index.jsp' starting page</title>  </head>    <body>   当escapeXml属性为TRUE时:    <c:out value="水平线标记<hr>" escapeXml="true"/>    <br>            当escapeXml属性为false时:    <c:out value="水平线标记<hr>" escapeXml="false"></c:out>  </body></html>

 最终显示效果如图:

<c:set>设置标签

<c:set>标签用于在指定范围(page、request、session、application)内定义保存某个变量的值。

语法:将值存在指定名称的变量中

<c:set value="value" var="name" scope="page"/>

或将变量存储在指定对象的属性中。

<c:set value="value" var="name" scope="page"/>

注意,target属性不能直接指定javaBean或Map,而应该是使用EL表达式或脚本表达式指定真正的对象,例如要为student对象name属性赋值,应该使用target="${student}"而不是使用target=student。

首先看一下javaBean

package Bean;public class Student {   private String name;   private String password;   public String getPassword() {     return password;   }   public void setPassword(String password) {     this.password = password;   }   public String getName() {     return name;   }   public void setName(String name) {     this.name = name;   }}

 然后看相关处理界面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page import="Bean.Student" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>      <title>My JSP</title>  </head>    <body>    <c:set var="info" value="这是测试信息!" scope="session"/>    ${info}    <br>    <jsp:useBean id="student" class="Bean.Student"/>    <c:set value="张三" target="${student}" property="name"/> ${student.name }  </body></html>

 <c:remove>移除标签

<c:remove>标签可以从指定的JSP范围内移除指定的变量。

语法:

<c:remove var="name" scope="page"/>

var是要移除变量的名称。scope是用于指定变量的存在范围。可选值有page,request,session,application,默认是page。

例如:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>My JSP 'CRemove.jsp' starting page</title>  </head>    <body>    <c:set var="mess" value="测试信息!"/>    <c:out value="${mess}"/>    <c:remove var="mess"/>    <c:out value="${mess}" default="值为空"/>  </body></html> 

 

1 0
原创粉丝点击