JSTL详解(二)

在JSTL中,一般用途的标签只要是指具有输出,设置变量,和错误处理等功能的标签,他们在jsp中使用很频繁,它们有:

l         <c:out>

l         <c:set>

l         <c:remove>

l         <c:catch>

下面,我来讲述一下他们的作用:

<c:out>

它是一个输出的标签,负责把计算出的结果输出到jspwriter,就跟调用out.println()基本一样。没有BODY的时候,使用下面的语法:

<c:out value=”value”  [escapeXml]=”{true|false}”  [default=”defaultValue”]/>

有BODY的时候,使用下面的语法:

<c:out value=”value”  [escapeXml]=”{true|false}” >

这里是BODY,可以是任何合法的jsp或者是html代码。

</c:out>

注意,escapeXml的作用是是否将代码交给xml解析器解释,true为交给xml解析器解释,false为交给浏览器解释,见红色部分代码

举例:c_out.jsp

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

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<head>

<title>JSTL: c:out的使用</title>

</head>

<body bgcolor="#FFFFFF">

<hr>

<c:set var="sessionAttr" value="sessionValue" scope="session"/>

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

<c:set var="requestAttr" value="requestValue" scope="request"/>

<c:out value="以下输出的是前面设置的属性<br>" escapeXml="false"/>

<c:out value="${sessionAttr}"/>

<c:out value="${pageAttr}"/>

<c:out value="${requestAttr}"/>

<c:out value="${test_nodef}" default="没有test_nodef这个变量"/>

</html>

<c:set>

这个标签用于在某个范围(page,request,session,application)里面设置特定的值(默认为page),或者设置某个已经存在的javabean的属性。类似于<%request.setAttribute(“name”,value)%>

语法:

1、使用value属性设置一个特定范围里面的属性:

<c:set value=”value”  var=”varName” [scope= “{page|request|session|application}”]/ >

2、使用value属性设置一个特定范围里面的属性,带有BODY:

<c:set value=”value”  var=”varName” [scope= “{page|request|session|application}”] >

Body content

</c:set>

3、设置某个特定对象的一个属性:

<c:set value=”value”  target=”target”  property=”propertyName”/ >

4、设置某个特定对象的一个属性, 带有BODY:

<c:set value=”value”  target=”target”  property=”propertyName” >

Body content

</c:set>

举例:c_set.jsp

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

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<jsp:useBean id="user" class="com.j2ee14.ch12.User"/>

<html>

<head>

<title>JSTL:的使用c:set</title>

</head>

<body bgcolor="#FFFFFF">

<hr>

设置一个属性,然后输出它<br>

<c:set var="maxCount" value="100"/>

<c:out value="${maxCount}"/>

<hr>设置属性时,把它的值放在标签的body中。

<c:set var="password">

ksdjfxsdf234234

</c:set>

<c:out value="${password}"/>

<hr>设置javaBean的属性,然后输出这些属性值:

<c:set value="hellking" target="${user}" property="userName"/>

userName=<c:out value="${user.userName}"/>

<hr>设置属性,并且指定它们的范围,属性的默认范围是page。

<c:set value="20" var="maxIdelTime" scope="session"/>

<c:set value="next.jsp" var="nextPage" scope="page"/>

</body>

</html>

<c:remove>

它的作用是删除某个变量或者属性。类似于<%session.removeAttribute(“name”)%>,它的语法是:<c:remove var=”varName” [scope= “{page|request|session|application}”]/ >

举例:c_remove.jsp

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

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<head>

<title>JSTL:c:remove的使用</title>

</head>

<body bgcolor="#FFFFFF">

<c:set value="10000" var="maxUser" scope="application"/>

<c:set value="10" var="count" scope="session"/>

maxUser=<c:out value="${maxUser}"/><br>

count=<c:out value="${count}"/>

<hr>调用c:remove...

<c:remove var="maxUser" scope="application"/>

<c:remove var="count"/>

调用了c:remove后,参数值为:

maxUser=<c:out value="${maxUser}"/>,

count=<c:out value="${count}"/>,

</body>

</html>

<c:catch>

它的作用是捕捉由嵌套在它里面的标签所抛出来的异常。类似于<%try{}catch{}%>,它的语法是:<c:catch [var=”varName”]>nested actions</c:catch>

举例:c_catch.jsp

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

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<head>

<title>JSTL:catch的使用</title>

</head>

<body bgcolor="#FFFFFF">

<c:catch var="error">

<%

Integer.parseInt("sdkfj");

%>

</c:catch>

<hr>异常:

<c:out value="${error}"/>

<hr>异常 exception.getMessage=

<c:out value="${error.message}"/>

<hr> 异常exception.getCause=

<c:out value="${error.cause}"/>

</body>

</html>

JSTL详解(二)的更多相关文章

  1. .NET DLL 保护措施详解(二)关于性能的测试

    先说结果: 加了缓存的结果与C#原生代码差异不大了 我对三种方式进行了测试: 第一种,每次调用均动态编译 第二种,缓存编译好的对象 第三种,直接调用原生C#代码 .net dll保护系列 ------ ...

  2. PopUpWindow使用详解(二)——进阶及答疑

      相关文章:1.<PopUpWindow使用详解(一)——基本使用>2.<PopUpWindow使用详解(二)——进阶及答疑> 上篇为大家基本讲述了有关PopupWindow ...

  3. Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  4. logback -- 配置详解 -- 二 -- <appender>

    附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...

  5. 爬虫入门之urllib库详解(二)

    爬虫入门之urllib库详解(二) 1 urllib模块 urllib模块是一个运用于URL的包 urllib.request用于访问和读取URLS urllib.error包括了所有urllib.r ...

  6. [转]文件IO详解(二)---文件描述符(fd)和inode号的关系

    原文:https://www.cnblogs.com/frank-yxs/p/5925563.html 文件IO详解(二)---文件描述符(fd)和inode号的关系 ---------------- ...

  7. Android View 的绘制流程之 Layout 和 Draw 过程详解 (二)

    View 的绘制系列文章: Android View 的绘制流程之 Measure 过程详解 (一) Android View 绘制流程之 DecorView 与 ViewRootImpl 在上一篇  ...

  8. HTTPS详解二:SSL / TLS 工作原理和详细握手过程

    HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流 ...

  9. Linux dts 设备树详解(二) 动手编写设备树dts

    Linux dts 设备树详解(一) 基础知识 Linux dts 设备树详解(二) 动手编写设备树dts 文章目录 前言 硬件结构 设备树dts文件 前言 在简单了解概念之后,我们可以开始尝试写一个 ...

随机推荐

  1. Lucene_索引(域)的查询

    package cn.tz.lucene; import java.io.File; import org.apache.lucene.analysis.Analyzer; import org.ap ...

  2. C++反汇编-菱形继承

    学无止尽,积土成山,积水成渊-<C++反汇编与逆向分析技术揭秘> 读书笔记.马上就要出差了,回来后接着写吧. 一.概述 菱形继承是最复杂的对象结构,菱形结构会将单一继承与多重继承进行组合. ...

  3. 云计算大会有感—MapReduce和UDF

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.參会有感       首先还是非常感谢CSDN能给我票,让我有机会參加这次中国云计算峰会.感觉不写点什么对不 ...

  4. git diff 打补丁

    [root@workstation2017 demo]# git diff old new >cc.diff[root@workstation2017 demo]# cat cc.diffdif ...

  5. CSerialPort串口类最新修正版(解决关闭死锁问题)

    这是一份优秀的类文件,好多的地方值得我们学习,具体在多线程,事件,自定义消息,类的封装方面等等.Remon提供的串口类网址为:http://codeguru.earthweb.com/network/ ...

  6. Ext表单提示方式:msgTarget

    Ext.QuickTips.init();  Ext.form.Field.prototype.msgTarget = 'side'; Ext表单提示方式:msgTarget:有4中方式:qtip,t ...

  7. spring MVC 与 struts 的区别

    当初选框架的时候目的比较单纯---springmvc支持rest,小生对restful url由衷的喜欢 不用不知道一用就发现开发效率确实比struts2高 我们用struts2时采用的传统的配置文件 ...

  8. CentOS 6.5安装配置Nginx

    Ubuntu下安装nginx,直接apt-get install nginx就行了,很方便. 但是今天装了CentOS6.5,直接yum install nginx不行,要先处理下源,下面是安装完整流 ...

  9. UTF-8,Unicode,GBK,希腊字母读法,ASCII码表,HTTP错误码,URL编码表,HTML特殊字符,汉字编码简明对照表

    UNICODE,GBK,UTF-8区别 UNICODE,GBK,UTF-8区别    简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那 ...

  10. [转]室友靠打游戏拿30万offer,秘密竟然是……

    又是一年秋招季,苦逼的小编还天天泡在图书馆里刷PAT,室友大佬却已经到处拿offer.上周某室友已经成功拿到杭州某企业年薪30W的offer,小编虚心向其讨教,某室友一脸兴奋地告诉小编,HR让面试者们 ...