您的位置:首页 > 编程语言 > Java开发

Java标准库学习小结

2015-04-27 20:30 281 查看
Java标准设计规范:jsp页面只展示数据界面,不做数据处理;Servlet只做业务逻辑处理,不做界面展示

EL表达式的出现,是希望jsp页面中不在出现Java代码,便于维护和阅读

但是EL表达式有局限性:1.不能赋值,只能获取数据;

2.没有条件判断、循环遍历的功能

为了弥补El表达式的不足,推出了JSTL标签库。

JSTL:Java standard tag library:Java标准标签库

使用JSTL需要导入两个jar包 jstl-1.2.jar和standard-1.1.2.jar

放在WebContent\WEB-INF\lib文件夹下面,通过Build path导入到项目中

使用JSTL标签时,需要在jsp页面中通过taglib指令来导入 ,需要配置如下两个参数

uri="",标签所在路径 uri在导入的JSTL标签库的META-INF文件夹c.tld(核心标签库)文件中的

<uri>http://java.sun.com/jsp/jstl/core</uri>;标签中。

高版本的eclipse或者Javaee5.0以上的工程会自动提示以供选择 使用什么标签,都要设定对应的uri

prefix=""标签的前缀,在对应标签的<short-name>c</short-name>中可以找到

JSTL标签库中的标签,在导入以后,都是以前缀名作为标志的

JSTL标签中的c标签,被称为核心标签

JSTL标签库包含有:核心标签库(c标签):主要封装的是一些基本的核心业务逻辑

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

格式化和国际化标签库(fmt标签):主要封装的是一些进行数据格式化和国际化的业务。比如如期格式化等。

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

数据库标签库(aql标签):主要封装的是操作数据库的业务逻辑

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

xml标签库(x标签) :主要封装的是一些解析xml数据的业务逻辑

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

JSTL函数标签库(fn函数):主要封装的是常见函数。如string。

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

重点掌握:核心标签库(c标签) 函数标签库(fn标签)格式化和 国际化标签库(fmt标签)

核心标签库包括:

1.c:out标签:<c:out escapeXml="" default="" value="">

标签作用:向页面输出指定内容

escapeXml:指定是否输出为xml格式输出 ,只能接受参数true/false

true:会对输出的数据进行转义(转义只针对特殊字符)

false:不会对输出内容进行转义

default:指定默认的输出值

value:输出的内容。可以是<%= %>表达式和EL表达式

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

等价于pageContext.getAttribute("hehe1");

2.c:set标签:<c:set scope="" value="" property="" var="" target=""></c:set>

标签的作用:设置一个域或者集合中的属性

var:指定域中的属性名

value:指定域中的属性值

scope:指定域对象

target:指定集合名或者对象名 ,即赋值的目标。可以是EL表达式

property:指定集合的属性名或者对象的属性名,即需要赋值的对象属性

2.1保存数据:在设置值的时候可以通过scope:指定数据存放的域对象

<c:set var="hehe1" value="hehe"></c:set>

默认情况下数据放在pageContext域中

保存的值可以通过EL表达式取出 ,不能直接用<%= %>表达式取出

${hehe }或者<c:out value="${hehe1}"></c:out>

2.2可以给域中的对象赋值

<%

//创建对象

User user = new User();

//把对象放到域中

pageContext.setAttribute("user", user);

//给对象赋值

%>

<c:set target="${user}" property="name" value="dslfkl"> </c:set>

<c:set target="${user}" property="name" value="password"> </c:set>

获取设置的值

${user.name } ${user.password}

3.c:remove标签 <c:remove var="" scope=""/>

标签作用:删除域中的属性

var:指定要删除的属性的名称

scope:指定域名

<c:set var="salary" scope="session" value="${2000*2}"/>

<p>Before Remove Value: <c:out value="${salary}"/></p>

<c:remove var="salary"/>

<p>After Remove Value: <c:out value="${salary}"/></p>

4.c:catch标签 <c:catch var=""></c:catch>

标签作用:捕获异常

var:指定异常对象以什么属性存储在page域中

<c:catch var ="catchException">

<% int x = 5/0;%>

</c:catch>

<c:if test = "${catchException != null}">

<p>The exception is : ${catchException} <br />

There is an exception: ${catchException.message}</p>

</c:if>

5.c:if标签<c:if test=""></c:if>相当于if语句

标签作用:对于指定的条件语句,如果成立,则执行标签体内容

test:指定判断条件

6.c:choose标签 <c:choose>

<c:when test=""></c:when>

<c:otherwise></c:otherwise>

</c:choose>

标签作用:实现if else的功能

<c:choose>:外部选择

<c:when test="">指定条件语句成立时执行的标签内容

test:指定判断的条件语句

<c:otherwise>指定的条件不成立时执行的标签内容

7.c:forEach标签<c:forEach items="" var=""</c:forEach>

标签作用:该标签实现的功能是Java中forEach的功能

属性 属性描述 是否必要 默认值

items 要被循环的信息 否 无

begin 开始的元素(0=第一个元素,1=第二个元素) 否 0

end 最后一个元素(0=第一个元素,1=第二个元素) 否 Last element

step 每一次迭代的步长 否 1

var 代表当前条目的变量名称 否 无

varStatus 代表循环状态的变量名称 否 无

items: 要迭代的对象或变量名

var: 迭代变量名

//准备数据

List<User> userList = new ArrayList<User>();

userList.add(new User("aa","aa"));

userList.add(new User("bb","bb"));

userList.add(new User("cc","cc"));

userList.add(new User("dd","dd"));

//把数据放进域中

pageContext.setAttribute("userList", userList);

<c:forEach items="userList" var="user">

姓名:${user.username} 密码:${user.password}

</c:forEach>

<c:forEach var="i" begin="1" end="5">

Item <c:out value="${i}"/><p>

</c:forEach>

8.c:url标签 <c:url context="" scope="" value="" var="">

<c:param name="" value="">

标签作用:指定链接跳转时的参数

name:指定参数的属性名称

value:指定参数的值

</c:param>

</c:url>

标签作用:指定跳转链接

context:指定网站/网址

scope:指定域

value:指定属性的值

var:指定属性的名称

<c:url context="aa" scope="page" value="http://www.baidu.com" var="index">

<c:param name="name" value="hehe">

</c:param>

</c:url>

9.c:redirect标签(实现重定向功能)<c:redirect context="" url=""></c:redirect>

标签作用:重定向到指定页面

url:目标URL 无默认值

context:一个本地网络应用程序的名称,默认为当前应用

<c:redirect url="http://www.w3cschool.cc"/>

10.c:forTokens标签

标签作用:该标签实现的功能是Java中forEach的功能

属性 属性描述 是否必要 默认值

items 要被循环的信息 否 无

begin 开始的元素(0=第一个元素,1=第二个元素) 否 0

end 最后一个元素(0=第一个元素,1=第二个元素) 否 Last element

step 每一次迭代的步长 否 1

var 代表当前条目的变量名称 否 无

varStatus 代表循环状态的变量名称 否 无

delims 分隔符 是 无

items: 要迭代的对象或变量名

var: 迭代变量名

<c:forTokens items="Zara,nuha,roshy" delims="," var="name">

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

</c:forTokens>

11.c:import标签

标签作用<c:import>标签提供了所有<jsp:include>行为标签所具有的功能,同时也允许包含绝对URL

属性 属性描述 是否必要 默认值

url 需要检索和引入的页面的URL 是 无

context /紧接着一个本地网络应用程序的名称 否 当前应用程序

charEncoding 所引入的数据的字符编码集 否 ISO-8859-1

var 用于存储所引入的文本的变量 否 Print to page

scope var属性的作用域 否 Page

varReader 可选的用于提供java.io.Reader对象的变量 否 无
<c:import var="data" url="http://www.w3cschool.cc"/>

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

格式化标签

JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:

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

标签 描述

<fmt:formatNumber> 使用指定的格式或精度格式化数字

<fmt:parseNumber> 解析一个代表着数字,货币或百分比的字符串

<fmt:formatDate> 使用指定的风格或模式格式化日期和时间

<fmt:parseDate> 解析一个代表着日期或时间的字符串

<fmt:bundle> 绑定资源

<fmt:setLocale> 指定地区

<fmt:setBundle> 绑定资源

<fmt:timeZone> 指定时区

<fmt:setTimeZone> 指定时区

<fmt:message> 显示资源配置文件信息

<fmt:requestEncoding> 设置request的字符编码

文章引用来自:http://blog.csdn.net/ning_xian_hong/article/details/45267875?ref=myread
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: