`
hadix
  • 浏览: 25239 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

编写JSP自定义标签

阅读更多

可以使用JSP自定义标签来实现简单的代码模板.

自定义标签可以通过传统的继承TagSupport或SimpleTagSupport并实现相关方法,然后声明使用tag描述符进行声明.

 

这里要说的是一种更加简单的方式,TagFiles.

Tag File其实就是一个JSP页面,只是把扩展名由.jsp变成了.tag,并放置在指定的目录下.

TagFile中不能使用page指令,作为替代可以使用tag指令,在tag指令中声明pageEncoding来指定文件编码,这尤为重要.

attribute指令用来指定调用tag可以使用的参数.

例如<v:table model="${model}">  这里的model就是在TagFile中通过attribute指令进行指定的.

具体的attribute指令如下

 

<%@attribute name="pageInfo" type="com.rmc.web.utils.Pages" rtexprvalue="true" required="true" %>
 

 

这里声明了一个pageInfo属性,并指定了参数的具体类型.rtexprivalue="ture"表明该属性接受EL表达式,false表示不接受. required="true"表示该属性为必须的,默认值是false.一个简单的TagFile如下

 

<%@tag body-content="empty" pageEncoding="gbk" %>
<%@attribute name="pageInfo" type="com.rmc.web.utils.Pages" rtexprvalue="true" required="true" %>
<script type="text/javascript">
    function toPage(pageNo) {

        document.getElementById("page_no").value = pageNo;
        document.getElementById("form_submit").click();
    }
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td>
            共${pageInfo.allRecords}条&nbsp;<a href="#" onclick="toPage(1)">首页</a>&nbsp;
            <a href="#" onclick="toPage(${pageInfo.cpage}-1)">上一页</a>&nbsp;
            <a href="#" onclick="toPage(${pageInfo.cpage}+1)">下一页</a>&nbsp;
            <a href="#" onclick="toPage(${pageInfo.allPages}+0)">末页</a>&nbsp;${pageInfo.cpage}/${pageInfo.allPages}页&nbsp;&nbsp;&nbsp;
            转到:第&nbsp;<input id="page_no" name="page" type="text" style="width: 26px;"/>&nbsp;页&nbsp;
            每页&nbsp;<input name="pageSize" type="text" value="${pageInfo.pageSize}" style="width: 26px;"/>&nbsp;条&nbsp;
            <input id="form_submit" type="submit" value="GO"/>
        </td>
    </tr>
</table>
 tag指令中有一个body-content参数,取值有三个scriptless(不接受jsp脚本,接受普通文本和EL.这也是默认值),empty(不接受标签体),tagdependent(将标签体视为普通文本).可见表标签体是绝对不接受jsp脚本的,当然使用标签的目的就是为了不直接在jsp中使用脚本.当该参数取值不为empty时,在TagFile中可以使用<jsp:dobody/>引用标签体的内容.

TagFile编写好之后,需要放置在应用的WEB-INF/tags/目录或其子目录下.如果你的TagFile要作为一个库发布,需要将TagFile放置在jar的META-INF/tags/目录或其子目录下,同时还要编写tag描述符(.tld)文件放置在META-INF/TLDs目录下.有关.tld的编写也比较简单只是把TagFile中的各种指令使用xml文件重新声明一次.具体写法就不讨论了,可以参考其他文档.


有了TagFile后,在jsp中引用时想引用JSTL一样,要首先使用taglib指令进行声明.例如
<%@ taglib prefix="v" tagdir="/WEB-INF/tags" %>这里与引用JSTL不同的是将taguri换成了tagdir,其值就是放置TagFile的目录.

0
2
分享到:
评论

相关推荐

    jsp自定义标签编写的分页

    是用jsp自定义标签编写的一个非常不错的分页,扩展性非常不错,不依赖于数据库。

    JSP自定义标签 eclipse项目

    JSP 自定义标签,初学者必备,比较简单,可以看看的,没有文档

    jsp自定义标签库注意事项

    jsp标签库的应用可以简化我们在编写页面代码量;使我们每一个人更加轻松的去编程

    掌握自定义JSP标签

    想要在 JavaServer Pages (JSP) 应用程序中添加自定义标签吗?本教程将为您展示如何用这些标签编写类似于 JSP 技术自带操作 —— 如 jsp:useBean、jsp:getProperty 和 jsp:forward —— 的自定义操作。介绍如何用...

    JSP 自定义标签

    JSP 自定义标签 自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。 JSP标签扩展...

    struts2自定义标签案例详解

    这里在实现自定义标签时,继承的2个类分别是org.apache.struts2.views.jsp.ComponentTagSupport和org.apache.struts2.components.Component,ComponentTagSupport实际上是对BodyTagSupport的一次封装,看一下...

    JSP自定义标签入门学习

    本文为大家分享了JSP自定义标签入门学习教程,希望大家喜欢。 1.JSP自定义标签: 自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作...

    jsp java自定义标签 分页 当前位置 循环遍历数据

    jsp和java联合实现了自定义标签的功能,主要技术继承了TagSupport类和编写对应bodytag.tld配置文件 实现了分页功能 当前功能点所在位置 循环遍历数据

    掌握自定义jsp标签

    想要在 JavaServer Pages (JSP) 应用程序中添加自定义标签吗?本教程将为您展示如何用这些标签编写类似于 JSP 技术自带操作 —— 如 jsp:useBean、jsp:getProperty 和 jsp:forward —— 的自定义操作。介绍如何用...

    自定义JSP分页标签

    很适用的自定义JSP分页标签,完整的源码.在实际项目中,是经常用到的.讲解一下:自定义分页标签实现步骤--1.编写一个分页标签处理类;2.配置标记的tld;3.web.xml配置;4.jsp页面调用标记.顺便补充一下:分页,有真分页(读...

    JSP自定义标签基础知识学习

    如果要实现自定义标签,那么需要如下几步: 编写标签处理类 需要继承或者实现相关的类或者接口 编写标签描述文件 该文件是一个XML文件,而且必须放在网站的WEB-INF目录中 在JSP中引入标签且使用 使用taglib指令引入...

    自定义标签的使用(详细)

    简要的介绍了自定义标签的编写,配置及使用!

    JSP使用自定义标签防止表单重复提交的方法

    本文实例讲述了JSP使用自定义标签防止表单重复提交的方法。分享给大家供大家参考。具体如下: 1. 编写servelt: package cn.itcast.apsliyuan.web.servlet; import java.io.IOException; import javax.servlet....

    Struts2 自定义下拉框标签Tag(源码)

    自定义标签主要包括三个步骤: 1、编写java类,继承TagSupport类; 2、创建tld文件,影射标签名和标签的java类; 3、jsp页面引入tld。 博文地址:http://blog.csdn.net/itmyhome1990/article/details/50718282

    JSTL Core标签库资料

    从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。

    JSP 动态数据菜单

    这是一组用JSP自定义标签、JavaScript、CSS编写的动态数据菜单,所需类已封装成包,只要进行导入并作简单的设置即可实现数据绑定,支持现阶段所有数据库链接。

    jsp 标准标签库简析

    进一步将应用程序的显示层和业务层完全分离,更加有利于应用程序的分工协作,jsp开发者指定了 JSTL ,提供了一组统一的通用的自定义标签文件,并将这些文件组合在一起,形成了jsp标准标签库,即JSTL。 1) 定义:包含...

    在JSP中用JSF组件

    JSF组件包含若干个Java类和配置文件。为创建一个自定义JSF组件,您需要开发一个扩展JSF基本组件类的Java类;...开发一个将在JSP页面中用于描述标签的Java类;编写一个标签库定义(TLD)文件;编写JSF配置文件。

    day13_2.zip

    博文示例代码。...自定义标签其实就是自定义类一样!步骤:1. 定义标签处理类:必须是Tag或SimpleTag的实现类;2. 编写标签库描述符文件(TLD);3. 页面中使用`&lt;%@taglib%&gt;`来指定tld文件的位置。

    基于SSM使用idea构建的旅游网站---毕业设计

    3)分页使用的是jsp自定义标签; 4)上传图片到项目也是封装好了工具类; 5)在线支付调用易宝的支付接口; 6)自定义拦截器对为登陆用户进行拦截; 7)复杂的业务在于一个景点对应多个门票,想要门票显示在对应...

Global site tag (gtag.js) - Google Analytics