文档章节

JSTL

l
 leemamas
发布于 2015/10/26 19:19
字数 762
阅读 11
收藏 0
1.jstl (java standard tag lib  java标准标签库) 
    (1)jstl是什么 
        apache开发的一套jsp标签,后来捐献给了sun, 
    sun将其命名为jstl。 
    (2)如何使用jstl 
        step1,将jstl相关的jar文件拷贝到WEB-INF\lib下。 
        注: 
            如果使用javaee5.0(包含了jstl相关的jar文件) , 
        一般不需要再拷贝了。 
        step2,使用taglib指令导入相应的标签。 
            <%@taglib uri="http://www.tarena.com.cn/tag"  
            prefix="c"%> 
                uri是一个命名空间, 
                prefix是命名空间的前缀(别名)。 
            注: 
                命名空间(namespace)是为了区分同名元素而设置 
                的一个字符串。 
                 
    (3)jstl几个核心的标签 
        1)if 
            <c:if test="" var="" scope=""> 
                标签体 
            </c:if>     
            当test属性值为true时,容器会执行标签体的内容。 
            test属性可以使用el表达式来计算。 
            var属性:指定一个绑订名称。 
            scope属性:指定绑订的范围,值可以是(page,request, 
                            session,application)。 
        2)choose 
            <c:choose> 
                <c:when test=""> 
                </c:when> 
                <c:otherwise> 
                </c:otherwise> 
            </c:choose> 
            when可以出现1次或者多次,表示一个分支,当 
            test属性值为true时,会执行该分支。 
            othewise可以出现0次或者1次,表示例外。

 
        3)forEach 
            <c:forEach items="" var="" varStatus=""> 
            </c:forEach>     
            用来遍历集合或者数组。 
            items属性用来指定要遍历的集合或者数组,可以 
            使用el表达式。 
            var属性:用来指定一个绑订名,绑订范围固定是 
            pageContext。 
                注:每次从集合或者数组中取一个元素,然后将其 
                    绑订到pageContext上,绑订名由var属性来指定。 
            varStatus属性:用来指定一个绑订名,绑订范围固定是 
            pageContex。 
                注: 
                    绑订值是一个特殊的对象,该对象提供了一些 
                    方法,用来获得当前遍历的状态。 
                    getIndex() : 获得当前被遍历的元素的下标( 
                                        从0开始    )。 
                    getCount():获得当前是第几次遍历(从1开始) 
                         
<c:forEach items="${requestScope.users}" var="user" varStatus="s">
                <tr class="row${s.index%2+1}">
                    <td>${s.index}</td>
                    <td>${user.name}</td>
                    <td>
                        <c:if test="${user.gender=='m'}" var="flag" scope="request">男</c:if>
                        <c:if test="${!flag}">女</c:if>
                    </td>
                    <td>
                        <c:if test="${user.age<18}" var="flag" scope="request">未成年</c:if>
                         <c:if test="${!flag}">成年</c:if>
                    </td>
                    <td>${s.count}</td>
                    <td><a href="2.jsp">update</a></td>
                </tr>
            </c:forEach> 
     

4.自定义标签

1.建类

public class DateTag extends SimpleTagSupport {
    Private String pattern;
    
    public String getPattern() {
        return pattern;
    }

    public void setPattern(String pattern) {
        this.pattern = pattern;
    }

    @Override
    public void doTag() throws JspException, IOException {
        PageContext ctx=(PageContext)getJspContext();
        JspWriter jw=ctx.getOut();
        Date date=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat(pattern);
        String d=sdf.format(date);
        jw.println(d);
    }
}
1.1继承SimpleTagSupport 
1.2定义属性(接收页面指定的参数)添加GET/SET方法
1.3重写doTag方法
PageContext ctx=(PageContext)getJspContext();
JspWriter jw=ctx.getOut();
2.建tag.tld(参考c.tld)
2.1
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
    version="2.1">
  <tlib-version>1.1</tlib-version>
  <short-name>c1</short-name>
  <uri>aaa</uri>
   
<tag>
        <name>date</name>
        <tag-class>DateTag</tag-class>
        <body-content>empty</body-content>

    <attribute>
        <name>pattern</name>
        <required>true</required>
        <rtexprvalue>false</rtexprvalue>
        </attribute>
</tag>
    </taglib>
3.jsp页面
<%@page pageEncoding="utf-8"  contentType="text/html; charset=utf-8"%>
<%@taglib uri="aaa" prefix="c1"%>
<html>
    <head></head>
    <body style="font-size:30px">
        <c1:date pattern="yyyy-MM-dd"/>
    </body>
</html>

© 著作权归作者所有

上一篇: aaaaa
l
粉丝 0
博文 3
码字总数 2241
作品 0
深圳
程序员
私信 提问
tomcat 5.5 部署项目报错 关于Filter的错误。。

我在tomcat7.0部署没不报错,但是再tomcat5.5就会报错。。 listener.ContextListener UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter logLevel WARN UrlRewriteFilte......

庄泽锐
2014/03/06
1K
5
oscache缓存的页面为乱码

项目用的oscache,用的web.xml配置 CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8   forceEncoding   true    CharacterEncodingF......

kkli
2014/03/13
398
1
Tomcat 容器与servlet的交互原理

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器...

watermelon11
02/25
174
0
Servlet 生命周期、工作原理

Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。 init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet 对象。可以配...

ArlenXu
2015/01/24
143
0
Servlet生命周期与工作原理

Servlet生命周期分为三个阶段:   1,初始化阶段 调用init()方法   2,响应客户请求阶段  调用service()方法   3,终止阶段  调用destroy()方法 Servlet初始化阶段:   在下列时...

№贪↗恋♂
2012/08/08
159
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 如果是个帅小伙你愿意和他出去吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐:《Ghost 》游戏《死亡搁浅》原声 《Ghost 》游戏(《死亡搁浅》原声) - Au/Ra / Alan Walker 手机党少年们想听歌,请使劲儿戳...

小小编辑
22分钟前
20
3
java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
16
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部