掌握Thinkphp3.2.0----标签库

1.什么是内置标签?什么是标签扩展库?

Cx.class.php 和 Html.class.php

2.怎么加载非内置标签,怎么使用?

两种方式加载

3.怎么扩展自定义的标签?

 仿照Html.class.php写

仔细回答这3个问题:

问题一:

Think/Library/Think/Template/TagLib的Cx.class.php就是默认的内置标签,其中包含了前边所学习的标签。

在模版中可以直接以普通标签的形式进行调用。例如:<volist name="" id=""></volist>

Think/Library/Think/Template/TagLib的Html.class.php是扩展的非内置标签。

问题二:

   配置文件:

    ‘TAGLIB_BUILD_IN‘ =>‘cx,html‘,修改默认的内置标签。这样的html就内置标签了,可以和volist一样直接调用了

引入:

<taglib name="html" />在模版中直接调用。但是调用得以固定: <html:imageBtn type="" value="" />这种

方式需要每一个模版文件都要引入。

‘TAGLIB_PRE_LOAD‘=>‘html‘,配置文件中写入。这样就不用每次加载了

问题三:

有时感觉内置的标签不能满足项目日益繁杂的项目需求, 这是可能想自己扩展一些标签,来使用,那么自己怎么扩展标签呢?

第一步:在 Think/Library/Think/Template/TagLib 下创建一个 Test.class.php

 1 //自定义扩展标签
 2 e namespace Think\Template\TagLib;
 3 e use Think\Template\TagLib;
 4 defined(‘THINK_PATH‘) or  exit();
 5 /**
 6 * Test测试标签
 7 */
 8 s class Test s extends TagLib{
 9 // 标签定义
10 d protected $tags = array(
11 ‘mytest‘=> array(‘attr‘=>‘color,border‘,‘close‘=>1)
12 );
13 public n function _mytest($tag,$content) {
14 $color = ‘‘;
15 $border = ‘‘;
16 f if ( isset($tag[‘color‘])) {
17 $color = ‘color:‘.$tag[‘color‘];
18 }
19 f if ( isset($tag[‘border‘])) {
20 $border = ‘border:‘.$tag[‘border‘].‘px solid #ccc‘;
21 }
22 $css = $color.‘;‘.$border;
23 n return ‘<div style="‘.$css.‘">‘.$content.‘</div>‘;
24 }
25 }

导入 test 扩展标签

1 <taglib name="test" />

使用扩展标签

1 <Test:mytest color="blue" border="5">测试标签</Test:mytest>

这样就可以自定义自己所用的标签了。基本都是按照固定的规则进行

时间: 2024-11-15 22:28:48

掌握Thinkphp3.2.0----标签库的相关文章

struts2.0标签库

用过struts1.x的人都知道,标签库有html.bean.logic.tiles,而struts2.0里的标签却没有分类,只用在jsp头文件加上<%@ taglib prefix="s" uri="/struts-tags" %>就能使用struts2.0的标签库 下面就介绍下每个标签的用法(有错请指正): A: <s:a href=""></s:a>-----超链接,类似于html里的<a>&

javaweb学习总结(二十六)——jsp简单标签标签库开发(二)

一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段,这段JSP片段中不能包含JSP脚本元素. WEB容器在处理简单标签的标签体时,会把标签体内容用一个JspFragment对象表示,并调用标签处理器对象的setJspBody方法把JspFragment对象传递给标签处理器对象.JspFragment类中只定义了两个方法,如下所示: getJspCon

JSTL标签库简介

JSTL叫做标准标签库,但实际上它是由5个功能不同的标签库组成.当使用标签库时,必须在jsp页面的顶部使用<%@  taglib %>指令定义引用的标签库和访问前缀.这5中标签库及taglib指令如下所示: (核心标签库)<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> (格式标签库)<%@ taglib prefix="fmt" uri

开发属于我们自己的标签库!

1.1. 如何进行自定义简单标签: 对于自定义标签而言,如果我们要想使用我们自己定义的简单标签我们必须了解下面的相关类及接口的关系!这样我们就可以开发我们自己的标签库了!下面我们来看一下吧! 我们只要实现SimpleTag接口的实现类SimpleTagSupport抽象类就可以了!在此我们先来了解一下 SimpleTag 接口中定义的方法: 1 public interface SimpleTag extends JspTag { 2 3 public void doTag() 4 throws

JSTL标签库:Remove标签Catch标签

看注释 <c:remove> 标签删除变量,无论是从指定的范围内或范围内的变量(如果没有指定范围).这个动作通常是不特别有帮助,但它可以帮助确保一个JSP范围内的资源,它负责清理. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!-- 核心标签: 核心组的标签是最常用的JSTL标签.以下是在您的JSP的语法包括JSTL核心库

JSP标准标签库

JSP标准标签库 JSP标准标签库(JSP Standard Tag Library,JSTL)是实现Web应用程序中常见的通用功能的定制标签库集,程序员使用JSTL标签来避免在JSP页面中使用脚本. JSTL概述 (1).JSTL英文全称是“JSP  Standard  Tag Library”,即JSP标准标签库之意. (2).JSTL是由JCP(JavaCommnunity Process)指定的标准规范,是一组形如html的标签. (3)JSTL提供了诸如循环.条件.数据库访问.XML处

第3章 Struts2的标签库

3.1 Struts2的OGNL     1.OGNL表达式基础 标准的OGNL会设定一个根对象(root对象).假设使用标准OGNL表达式来求值(不是Struts 2 OGNL),如果OGNL上下文有两个对象foo对象和bar对象,同时foo对象被设置为根对象(root),则利用下面的OGNL表达式求值. #foo.blah // 返回foo.getBlah() #bar.blah // 返回bar.getBlah() blah // 返回foo.getBlah(),因为foo为根对象 在St

JSTL 标签库 使用(web基础学习笔记十九)

标签库概要: 一.C标签库介绍 1.1.<c:> 核心标签库  JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:1.表达式控制标签:out.set.remove.catch2.流程控制标签:if.choose.when.otherwise3.循环标签:forEach.forTokens4.URL操作标签:import.url.redirect 二.表达式控制标签 2.1.out标签 <c:out value="" escapeXml="&quo

Struts标签库

在JSP页面中,使用标记库代替传统的Java代码来实现页面的显示逻辑是大势所趋,然而,由于自定义标记很容易造成重复定义和非标准的实现,于是出现了基于java Web的JSTL和基于struts的taglib等标签库来解决这些问题. 这些标签库在实现原理上相差无几,学会一种,另一种也就很容易上手,那咱们就从Struts的标签库走起. 常用的strust标签库有<bean:write>.<logic:empty>和<logic:notEmpty>.<logic:pre

JSP 标准标签库(JSTL)(JSP Standard Tag Library)

[1] JSTL简介    > JSTL是JSP的标准标签库    > JSTL为我们提供了一些常用的标签,供我们日常开发使用(if . if...else .遍历 . 日期格式化) > 标签库    - core :核心标签库    - 最常用的一个标签库,也就是我们熟悉c标签. - fn :函数标签库    - 函数标签库它需要结合EL表达式使用,主要定义了一些字符串操作的方法. - fmt :格式化标签库    - 主要用来做日期.数字的格式化以及国际化    - 20151019