JSTL中的核心库
来源:互联网 发布:人工智能电影在线看 编辑:程序博客网 时间:2024/05/21 09:09
JSTL,是英文java standar tag library(java标准标签库),因此,这个库是得到java ee规范支持的,不需要额外地引入其他框架。这个库主要包含了四个部分:核心库、函数库、操作数据库的库、国际化支持的库,这里讲得仅仅是核心库。JSTL的核心库中,提供了通用标签,条件标签,迭代标签和url标签,在这里,也不对核心库中所有的标签进行讲解,只讲解最常用到的几个标签。
通用标签
属性
类型
描述
value
Object,默认是字符串,如果是变量,需要显示使用EL
${变量}
将变量输出到JSP页面上
Default
Object,默认是字符串
如果访问不到value里面的值,那么将输出默认值
escapeXml
Boolean
默认为true,会对<、>、&这些html特殊字符进行编码
使用案例,假设用户登录成功,那么用户跳转到欢迎页面Welcome.jsp,这个页面上输出文本:欢迎回来,xxx。首先,用户登录成功后,将User类的变量user设置到session中去。在欢迎页面 使用<c:out value=”${sessionScope.user.username}”/>就可以输出登录成功的用户的用户名。
<c:set>
该标签是用来往内置对象page,equest,session,application中设置变量或者Java Bean中设置属性的。它的主要属性如下:
属性
类型
描述
Value
Object
变量值
Var
String
对应的名称
scope
String
设置的范围,可以是page、request、session、application
target
String
支持往JavaBean或者Map中设置属性
Property
Object
Java Bean中的属性
当往内置对象page,request,session,application中设置变量时,相等于调用对应的setAttribute("name",xxx)。比如旧时的在JSP页面上验证用户登录ValidationLogin.jsp,在验证用户登录成功后,使用<c:set var=”user” value=”${pageScope.user}” scope=”session”/>这样就相当于session.setAttribute(“user”,user);比如用户修改了密码,可以在页面上使用<c:set property=”password” target=”${sessionScope.user}”/>,就可以在JSP页面上设置变量。<c:remove>
这个标签支持我们设置内置对象和Java Bean、Map的属性,很强大。移除内置对象page、request、session、application的属性变量,相当于page/request/session/application.setAttribute(“name”, null)。主要的属性如下:
属性
类型
描述
Var
String
内置对象的变量名称
Scope
String
指定内置对象,可以是page、request、session、application
使用案例,如果用户在注销页面选择了注销,那么,我们需要把session中的user属性给移除,那么就可以使用<c:remove var=”user” scope=”session”/>,就相当于设置了session.setAttribute(“user”, null);<c:catch>
在通常的java代码中,我们可以使用try…catch来进行异常捕捉,那么在JSP页面上,使用<c:catch>可以对一段脚本进行异常捕捉。它的主要属性如下:
属性
类型
描述
Var
String
将捕捉到的异常信息放入变量中
使用案例,在页面上对用户传递过来的参数进行类型转换<c:catch var=”exception”>
<%
String str_num = request.getParameter(“num”);
Int num = Integer.parseInt(str_num);
%>
</catch>
这样即使程序在上段代码中抛出异常了,也能正常运行,而不是出现500错误,此外,通过判断exception中的值是否为空或者null就可以知道到底有没有抛出异常
<if test=”${pageScope.exception==null or pageScope.exception.equals(“”)”>
你输入的参数非法
</if>
迭代标签
属性
类型
描述
Var
String
迭代的变量名称
Items
Object
需要迭代的集合或者书籍
VarStatus
String
迭代时代表迭代状态的变量
Begin
int
集合开始的下标
End
Int
集合结束的下标
Step
int
迭代时候的步进量,默认为1
使用实例,假设request对象中存在一个records属性,类型是List<User> ,使用<c:iterator>来进行遍历该变量<c: iterator items=”${request.records}” var=”user” varstatus=”stat”>
序号<c:out value=”${stat.index + 1}” />
用户名称<c:out value=”${user.username}” />
</c:iterator>
条件标签
最常用到的控制标签就是条件判断了,在JSTL核心库中,主要属性就只有一个,那就是test="表达式"。
<c:if test="expression">body</c:if>和和<c:choose><c:when test="expression1">
body1
</c:w]hen>
<c:when test="expression 2">
body2
</c:when>
<c:otherwise>
body3
</c:otherwise>
</c:choose><c:if>只是相当于if(condition){},如果符合了test中的EL表达式条件,那么就会输出body中的内容。而<c:choose>则是相当于if...else if...else if...else...,如果满足EL表达式,则输出body内部内容。
url标签
<c:url>
用来生成一个url,它的使用如下:
<c:url value="url地址" var="varName" [context="context"] [scope="page|request|session|application"]/>
如果需要带参数,就带上body:
<c:url value="url地址" var="varName" [context="context"] [scope="page|request|session|application"]>
<c:param name="paramName" value="paramValue"/>
</c:url>
<c:redirect>
用于客户端重定向,支持带参数的重定向:
<c:redirect url="yourUrl" [context="context"]>
<c:param name="paramName" value="paramValue"/>
</c:redirect>
- JSTL中的核心库
- JSTL中的核心标签库(EL)
- JSTL核心标签库中的用法
- JSTL 中的十二个核心标签
- JSTL核心标签库
- JSTL核心标签库
- JSTL核心标签库
- JSTL-核心标签库
- JSTL-核心标签库
- JSTL-核心标签库
- JSTL 核心标签库
- JSTL-核心标签库
- JSTL核心标签库
- Jstl 核心标签库
- JSTL-核心标签库
- JSTL 核心标签库
- JSTL-核心标签库
- JSTL 核心标签库
- codeforces 432C Prime Swaps
- TCPIP的几个简易概念
- Android ELF文件格式
- 开始~我的生活记录
- 排序与设计模式
- JSTL中的核心库
- LR杂记 - Linux系统监控工具之vmstat详解
- Android Socket 开发
- php深克隆和浅克隆
- windows下Eclipse操作MapReduce例子报错:Failed to set permissions of path: \tmp\hadoop-Jerome\mapred\staging\
- spring 企业开发3.0 4
- Delphi学习笔记 数据类型
- 混合三种背包问题(背包九讲)
- 首次启动优美新手指引tip