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. HTML5学习笔记4

    10.表单元素表单元素用于获取用户的输入数据form 表示HTML表单属性:    action 表示表单提交的页面    method 表示表单提交的请求方式:有POST和GET两种,默认GET(P ...

  2. Running CMD.EXE as Local System(转)

    Many times in the past I had to run an interactive command-line shell under the Local SYSTEM account ...

  3. JS实现《黑客帝国》落地字母背景

    JS实现<黑客帝国>落地字母背景.这个特别有意思,主要是通过设置字符相关属性.控制循环字母距离顶部的高度值,来达到字母不断循环下落的功能. 恩,还有加上一个随机机制,出现各种大小 各个位置 ...

  4. java基础学习总结——接口

    一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如“金丝猴是一种动物”,金丝猴从动物这个类继承,同时“金丝猴是一种值钱的东西”,金丝猴从“值钱的东西”这个类继承,同时“金丝猴 ...

  5. no scheme 问题

    用xcode4打开xcode3建立的工程,有时候,不能自动转换版本,就会显示no scheme. 这个是由于XXX..xcodeproj包中xcuserdata文件夹中user.xcuserdatad ...

  6. pytest文档21-pytest-html报告优化(nodeid中文显示[\u6350\u52a9\u6211\u4eec]问题解决)

    前言 pytest-html报告中当用到参数化时候,获取用例的nodeid里面有中文时候,会显示[\u6350\u52a9\u6211\u4eec]这种编码(再次声明,这个不叫乱码,这是unicode ...

  7. jQuery插件——可以动态改动颜色的jQueryColor

    1.请选择代码框中所有代码后, 保存为 jquery.color.js /*! * jQuery Color Animations v@VERSION * https://github.com/jqu ...

  8. Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!

    执行Maven Install打包的时候,提示以下警告信息: [WARNING] Using platform encoding (GBK actually) to copy filtered res ...

  9. 每天一个linux命令-vi

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  10. python opencv 人脸识别

    def findface(image): import cv2  frame=cv2.imread('n1.jpg') classifier=cv2.CascadeClassifier("h ...