Java.Web学习笔记 JSTL

来源:互联网 发布:汤姆叔叔 javascript 编辑:程序博客网 时间:2024/06/05 14:28

JSTL (JSP Standard Tag Library)
1. 标签是JSP作为JavaEE分层程序中显示层的一种解决方案。比脚本维护起来简单,整体看着比较整齐,而且功能强大。
2. Core标签库
(1) 标签

<c:choose>        <c:when test=”${param.action}”>           When标签输出        </c:when>        <c:otherwise>            Otherwise标签输出        </c:otherwise></c:choose>

当action的值是”true”时,When标签输出,否则Otherwise标签输出
(4) 标签

for(int num=2;num<=100;num+=2){    System.out.print(num);}
<c:forEach var=”num” begin=”2” end=”100” step=”2”>        ${num}</c:forEach>

(5) 标签还可遍历list
person有id属性

<c:forEach items=”${personList}” var=”person”>        ${person.id}</c:forEach>

(6) 标签遍历map
Person是一个map

<c:forEach items=”${personList}” var=”person”>        ${person.key}        ${person.value}</c:forEach>

(7) 有varStatus属性

调用就通过

<c:forEach items=”${personList}” var=”person” varStatus=”varStatus”>        ${ varStatus.current.key}        ${ varStatus.current.value}</c:forEach>

(8) 标签也是用于循环的,它是用于循环字符串

<c:forTokens items=”Jane,Tomi,Andy,Hedrix,McCartney,Lenno,Court,Ben”delims=”,” var=”item” varStatus=”varStatus” begin=”1” end=”7” step=”2”>        ${ varStatus.index}        ${ item}</c:forTokens>

(9) 实现计数器

<c:set var=”totalcount” value=”$ {totalCount +1}” scope=”application”>

(10) 标签

<c:remove var=”somemap” scope=”page”/>

这个标签只有两个属性,一个是var只接受字符串的表达式,还有一个是scope可以从page,request,Session,application中删除所有类型的数据,如果被删除的对象不存在也没事的,不会抛异常
(11) 捕捉异常
就是用来捕获异常

<c:catch var=”e”>        <c:set target=”someBean” property=”someProperty” value=”Some value”>        </c:set><c:catch><c:if test=”${e!=null}”>      程序抛出了异常 ${e.class.name} ,原因:${e.message}</c:if>

(12) 导入网络资源
(13) 实现url重写
(14) 标签实现重定向
(15) 标签就是设置参数的,一般重定向页面要设置参数就是使用

<c:redirect url=”http://www.baidu.com/s”>    <c:param name=”wd” value=”music” ></c:param></c:redirect>
  1. Fmt标签库
    (1) 设置编码
    (2) 实现本地化
    (3) 就是显示时区只是影响

    只有这里的时间受影响

    (4) 设置的是全局的时区有scope属性
    (5) 这样所有的messages_XX.properties的文件都会被加载,中文系统访问时返回messages_zh_CN.properties的资源,日语系统访问时返回messages_ja.perperties的资源,如果某个资源不存在,那么返回messages.properties
    (6) 里的参数用进行访问
<fmt:bundle basename=”messages” prefix=”prompt.”>    <fmt:message key=”xxx”>        <fmt:param value=”xxx”></fmt:param>  //如果有这个资源能用参数就用param标签进行设置值。</fmt:message></fmt:message>
  1. JSTL的fn方法库
    (1) 通过<%@ taglib uri=”…/functions” prefix=”fn”%>这样导入
    (2) 遵循的原则是fn:methodName()的格式,直接可以在EL表达式中使用
    (3) fn:contains(总的,sub)判断是总的否包含sub
    (4) fn:contains(总的,sub)判断总的是否包含sub,忽略大小写
    (5) fn:endsWith(String original,String suppix)判断文件类型
    (6) fn:startsWith()判断文件是否是以指定参数开始
    (7) fn:escapeXml()实现HTML编码,也就是特殊字符会改变
    (8) fn:indexOf()方法,也就是一个字符串出现在另一个字符串第一次出现的位置,没有就返回-1
    (9) fn:split(String source, String seperator)分割字符
    (10) fn:join(String[] array,String seperator)联合字符,把数组按照分隔符进行连接
    (11) fn:length(Object param)返回的是int类型的长度
  2. JSTL SQL标签库
    (1) 导入<%@ taglib uri=”…./sql” prefix=”sql”%>
    (2) 设置数据源
    (3) 查询表数据
    示例:
<sql:query var=”rs” dataSource=”${dataSource}” >select * from tablename</sql:query>

或者

<sql:query var=”rs” dataSource=”${dataSource}” sql=”select * from tablename”></sql:query>

(4) 还可以支持分页显示,
(5) 结果集动态遍历

${param.sqlyuju} //sqlyuju这是我们自己设的变量,最好用catch下异常

(6) 更新表数据,执行更新的时候用这个,否则用query
(7) 和
insert into tb_person(name,birthday) values (?,?)

<sql:param value=”hello”></sql:param><sql:dateParam value=”${date}” type=”timestamp”>

(8) 事务管理标签如果事务中有一个sql语句抛了异常那么所有事务中的sql语句都失败
6. JSTL的XML标签库
(1) Xml标签库除了需要jstl.jar和standard.jar之外,还需要xalan.jar和serializer.jar
(2) 这里Xml标签不能使用,是要用x做前缀
(3) 标签可以解析xml文件

<c:set var=”XML”>        <student description=”Software Engineer”>            <name>helloween</name>            <age>20</age></student></c:set><x:parse var=”content” doc=”${XML}” />

就把XML这个变量解析到content中去了
也可以直接解析,不用doc

<x:parse var=”content”>        <student description=”Software Engineer”>            <name>helloween</name>            <age>20</age>        </student></x:parse>
    还可以用c:import导入文件作为doc,注意导入的文件一定要是XML格式的否则会出错

(4) 输出指定元素’
Select可以有多种路径,,/,@表示JSTL或者JSP定义的变量
/表示父子关系或者所属关系
@表示属性

(5) 标签



(6) 标签,用于判断某个路径存不存在,有三个属性:var、scope、select。
var用于保存返回的结果
scope用于声明var的作用域
select指定目标路径
(7) 标签用法和core标签一样
(8) 标签用于保存某一个路径下的变量

(9) 把XML转化为HTML,用一个template文件(xslt)进行转换

<x:transform doc=”${data}” xslt=”${template}”></x:transform>
0 0