漫谈JSTL

本文详细介绍JSTL(JavaServer Pages Standard Tag Library)的核心标签库及其功能,包括输出、变量设置、循环、条件判断等实用标签的使用方法,并探讨如何通过JSTL实现页面的国际化。

1.JSTL——sun公司下的标签库

2.核心标签库(常用)

*out标签—用于输出一段文本给浏览器

eg:<c:out value="Cecilia" default="" escapeXml="true"/>
**作用:可以输出转义后的内容;另外还可以在标签没有内容时可以输出缺省值;

*set标签——把某一个对象存在指定的域范围内或设置Web域的Map中输出属性对象

**eg:<c:set var="data" value="Cecilia" scope="page"/>
**输出Map

eg:<%
Map map=new HashMap();
request.setAttribute(“map”,map);
%>

$(map.cc)

**操作javaBean,可以使用这个标签代替繁琐的、等标签
eg:<%
    Person p=new Person();
    request.setAttribute("p",p);
   %>
    <c:set property="name" value="Cecilia" target="$(p)"/>
         $(p.name);

*remove标签——删除各种域中的属性

*catch标签——用于捕获嵌套在标签体中内容抛出的异常

格式:ccc(var属性用于标识捕获的异常对象)
eg:     <c:catch var="myException" scope="page">
        <% int x+=1;%>
    </c:catch>
    $(myException.message)//取出异常信息
//表示在page域中捕获int x+=1表达式抛出的异常
*if标签——条件判断
//格式:
<c:if var="Cecilia" test="$(user==null)" scope="page">
注意:只要出现var,说明标签是以Cecilia为关键字存在page域中。
*chooseTag——标签用于指定多个条件选择的组合边界,必须和WhenTag、otherwiseTag标签一起使用,可以构造if..else的结构。
*forEachTag——用于指定集合对象中的元素进行循环迭代操作或者指定特定元素重复执行
**用于分页
**用于保存迭代信息对象varStatus=”status”,比如实现表格间隔显色
*param标签——用于在URL地址后面附加一些参数,可以嵌套在、、内,为这些标签所使用的URL地址附加参数,并且会将其参数自动转换为URL编码。
*url标签——用于在JSP页面中构造一个URL地址,其目的是实现URL重写(将会话标识号以参数形式附加在URL地址后面)
eg:     <c:url var="url" value="/ResponseWebTest/MyJsp"> 
        <c:param name="name" value="中国"></c:param>
    </c:url>
    <a href="$(url)">点击</a>
*redirect标签——实现重定向
注意:如果在需要但是不记得的情况下可以查询META目录下的c.tld文件就可以.

3.国际化标签

用来格式化显示数据的工作,比如:对不同区域的日期格式化等。
为了实现国际化,我们在jsp中所用到的标签等应该避免使用硬编码,而应该使用资源文件中的key来代替,以动态的呈现不同的语言。运用jstl实现国际化有一下步骤:

*编写中英文资源文件

我们编写两个资源文件globalMessages_en_US.propertiesglobalMessages_zh_CN.properties
英文资源文件(globalMessages_en_US.propertie)内容:id=ID name=Your Name中文资源文件内容:id=用户IDname=用户名

*为防止中文乱码,将中文资源文件转换成unicode编码

id=\u7528\u6237ID

name=\u7528\u6237\u540D

由于中文资源文件中出现非西欧字符,必须把中文字符转换成unicde编码,转码方法为,在dos下切换目录到JDK安装的bin目录下,并将globalMessages_zh_CN.properties复制到bin目录下,输入下来命令:native2ascii globalMessages_zh_CN.properties(源文件名) globalMessages_zh_CN.properties(转换后名称)

*jsp中利用jstl标签引用资源文件,同时给该项目导入jstl.jarstandard.jar这两个jar包,在jsp页面中引入下面两个库文件。 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
....
<body>
       <!--    <fmt:setLocale value="${param.setLocale}"/>  区域语言的值从传过来的参数中得到 --> 
       <fmt:setLocale value="en_US"/>           <!--指定区域语言-->
       <fmt:bundle basename="globalMessages">   <!-- 指定使用basename为globalMessages的资源文件,也即资源文件第一个单词为globalMessages-->
           <center>
           <table>
               <tr>
                   <td><fmt:message key="email"/></td>
                   <td><input type="text" name="email"></td>   
               </tr> 
           </table>
           </center>   
       </fmt:bundle>
  </body>

4.JSTL函数(EL函数)

由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用。
这些EL函数在JSTL开发包中进行描述,因此在JSP页面中使用SUN公司的EL函数库,需要导入JSTL开发包,并在页面中导入EL函数库,如下所示:
在页面中使用JSTL定义的EL函数:
<%@taglib uri=”http://Java.sun.com/jsp/jstl/functions” prefix=”fn”%>

*fn:toLowerCase——将一个字符串中包含的所有字符转换为小写形式,并返回转换后的字符串。

*fn:toUpperCase——将一个字符串中包含的所有字符转换为大写形式,并返回转换后的字符串。

*fn:trim——删除一个字符串的首尾的空格,并返回删除空格后的结果字符串,它接收一个字符串类型的参数。

*fn:join——以一个字符串作为分隔符,将一个字符串数组中的所有元素合并为一个字符串并返回合并后的结果字符。

*fn:contains——检测一个字符串中是否包含指定的字符串,返回值为布尔类型。

注意:fn:contains函数在比较两个字符串是否相等时是大小写敏感的。

*fn:startsWith——用于检测一个字符串是否是以指定字符串开始的,返回值为布尔类型,与之对应的EL函数:fn:endsWith 。

eg:fn:startsWith("www.it315.org","it315")的返回值为false

*fn:substringAfter——用于截取并返回一个字符串中的指定子字符串第一次出现之后的子字符串

eg:
fn:substringAfter(“www.it315.org”, “.”)的返回值为字符串“it315.org”。
与之对应的EL函数为:fn:substringBefore
(PS:)详细请参考: jSTL之EL函数详解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值