zoukankan      html  css  js  c++  java
  • JSP自定义tag控件标签

    JSP支持自定tag的方法,那就是直接讲JSP代码保存成*.tag或者*.tagx的标签定义文件。tag和tagx文件不仅支持经典jsp代码,各种标签模版代码,还支持xml样式的jsp指令代码。

    按照约定,tag和tagx文件需要放置在WEB-INF/tags目录下。

    下面是一个简单的例子,使用自定义标签创建一个Button:

     1 <%@ tag language="java" pageEncoding="UTF-8"%>
     2 <%@ include file="/webpage/include/taglib.jsp"%>
     3 <%@ attribute name="id" type="java.lang.String" required="true"%>
     4 <%@ attribute name="url" type="java.lang.String" required="true"%>
     5 <%@ attribute name="title" type="java.lang.String" required="true"%>
     6 <%@ attribute name="width" type="java.lang.String" required="false"%>
     7 <%@ attribute name="height" type="java.lang.String" required="false"%>
     8 <%@ attribute name="target" type="java.lang.String" required="false"%>
     9 <%@ attribute name="label" type="java.lang.String" required="false"%>
    10 <button class="btn btn-white btn-sm" data-toggle="tooltip" data-placement="left" onclick="edit()" title="修改"><i class="fa fa-file-text-o"></i> ${label==null?'修改':label}</button>
    11                         </button>
    12 <%-- 使用方法: 1.将本tag写在查询的form之前;2.传入table的id和controller的url --%>
    13 <script type="text/javascript">
    14 $(document).ready(function() {
    15     $('#${id} thead tr th input.i-checks').on('ifChecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定 
    16           $('#${id} tbody tr td input.i-checks').iCheck('check');
    17         });
    18 
    19     $('#${id} thead tr th input.i-checks').on('ifUnchecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定 
    20           $('#${id} tbody tr td input.i-checks').iCheck('uncheck');
    21         });
    22     
    23 });
    24 
    25     function edit(){
    26 
    27           var size = $("#${id} tbody tr td input.i-checks:checked").size();
    28           if(size == 0 ){
    29                 top.layer.alert('请至少选择一条数据!', {icon: 0, title:'警告'});
    30                 return;
    31               }
    32 
    33           if(size > 1 ){
    34                 top.layer.alert('只能选择一条数据!', {icon: 0, title:'警告'});
    35                 return;
    36               }
    37             var id =  $("#${id} tbody tr td input.i-checks:checkbox:checked").attr("id");
    38             openDialog("修改"+'${title}',"${url}?id="+id,"${width==null?'100%':width}", "${height==null?'100%':height}","${target}");
    39         }
    40 </script>

    在页面中使用标签:

     <table:editRow url="${ctx}/samplingmanage/preparationManage/form" title="编辑" id="contentTable"></table:editRow><!-- 编辑按钮 -->

    标签文件中常用的指令:

    tag 类似JSP page指令,可以用于import常用的java类库等
    include 导入其他的标签定义文件
    taglib 使用其他标签,如jstl, spring tag, struts tag等等
    attribute 定义一个属性
    variable 定义一个jsp page中可见的变量,默认范围为NESTED,表示标签内有效。可选项有AT_BEGIN和AT_END

    这些指令的可选属性:

    body-content 标签body的处理方式 ,可选项: 'empty', 'tagdependent' or 'scriptless'
    import 导入使用的java类库
    pageEncoding 设置页面编码
    isELIgnored 是否忽略el表达式
    dynamic-attributes 用于存储自定义属性的map,所谓的自定义属性指:未隐式申明的变量
    language 使用的脚本语言,目前必须是java
    display-name 标签名
    small-icon for tools
    large-icon for tools
    description 标签作用描述
    example informal description of how the tag is used

    <jsp:directive:attribute>的可选属性:

    name 属性名
    required true or false,是否是必须的
    rtexprvalue true or false - 指定是否支持运行时表达式
    type 值类型 - 默认是java.lang.String
    fragment true or false - 值先传递给容器(false), 直接传给标签处理方法(true)
    description 属性描述

    <jsp:directive:variable>的可选属性:

    name-given 变量名(标签使用时的变量名)
    name-from-attribute Specifies the name of an attribute, whose value is the name of the variable that will be available in the calling JSP page. Exactly one of name-given or name-from-attribute must be supplied.
    alias A locally scoped variable which will store the variable's value. Used only with name-from-attribute.
    variable-class 变量类.默认是java.lang.String.
    declare Indicates whether the variable is declared in the calling JSP page or tag file. Default is true. Not entirely clear what this means!
    scope 变量范围,可选项 AT_BEGIN(标签后jsp page内有效), AT_END(标签后jsp page内有效) and NESTED. NESTED(默认,标签内有效)
    description 变量描述
  • 相关阅读:
    Linux命令笔记
    Linux服务安装集合(1)
    浅谈GIT之通讯协议
    浅谈GIT之底层对象理解
    友情链接
    当黑客被抓是种怎样的体验?
    PHP 中 include 和 require 的区别详解
    论假如有一台无限算力的主机
    msf渗透安卓手机
    aws ec2 安装Elastic search 7.2.0 kibana 并配置 hanlp 分词插件
  • 原文地址:https://www.cnblogs.com/qingo00o/p/8989787.html
Copyright © 2011-2022 走看看