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. JavaScript数组中的22个常用方法

    数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细介绍. ...

  2. Oil Deposits 搜索 bfs 强联通

    Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...

  3. sql中如何统计一字段中字符串的个数

    declare @s varchar(100)set @s='156434A27kAsdABCiosd-01&**('--找出现的次数select len(@s)-len(replace(@s ...

  4. IOS7开发~Images.xcassets

    from:http://blog.csdn.net/liufan321/article/details/9121241 新建项目,如下所示: 本文分享一下Images.xcassets的体验~_~ 1 ...

  5. 怎样用代码方式退出IOS程序

    原文 :iOS Developer Library Technical Q&A QA1561 How do I programmatically quit my iOS application ...

  6. iPhone应用提交流程:如何将App程序发布到App Store-转

    对于刚加入iOS应用开发行列的开发者来说,终于经过艰苦的Coding后完成了第一个应用后最重要的历史时刻就是将应用程序提交到iTunes App Store.Xcode 4.2开发工具已经把App提交 ...

  7. error launching remote program failed to get the task for process

    Error  Starting executable: error launching remote program failed to get the task for process 715 这个 ...

  8. [cocos2dx笔记003] Vs2013添加静态库project

    (基于2.2.2版本号.用vs2013编辑代码)(cppblog版本号:http://www.cppblog.com/zdhsoft/archive/2014/05/11/206890.html) 在 ...

  9. Informatica 常用组件Aggregator之四 创建聚合转换

    在 Mapping Designer 中选择"转换-创建".选择聚合转换. 为聚合输入一个名称,并单击"创建".然后单击"完成". Desi ...

  10. asp.net中使用ueditor 1.3.6上传图片问题

    在asp.net中使用ueditor 1.3.6版本上传图片时,出现上传成功但是,图片无法正常显示的问题,解决方法如下: 只需要将imageUp.ashx中的info = up.upFile(cont ...