zoukankan      html  css  js  c++  java
  • JSTL--简单标签

    自定义标签

    1. 创建一个标签处理器类,实现javax.servlet.jsp.tagext.SimpleTag接口。

    2. 在WEB-INF文件夹下新建一个.tld(标签库描述文件)为扩展名的xml文件。

    tld文件示例:

    <?xml version="1.0" encoding="UTF-8" ?>
    ​​<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0">
    <description>my jsp tag library</description>
    <display-name>MJSTL core</display-name>
    <tlib-version>1.1</tlib-version>
    
    <!-- 建议在JSP页面上使用的标签的前缀 -->
    <short-name>myjst</short-name>

    <!-- 作为tld文件的id,用来唯一标识当前的tld文件,多个tld文件的uri不能重复通过JSP页面的taglib标签的uri属性来引用--> <uri>http://javaweb.test.ldj.com</uri> <!-- 描述自定义的MySimpleTag标签 --> <tag>   <!-- 标签的名字:在JSP页面上使用标签的名字 -->   <name>hello</name>   <!-- 标签所在类的全类名 -->   <tag-class>jstl.MySimpleTag</tag-class>   <!-- 标签体的类型 -->   <body-content>empty</body-content> </tag> </taglib>

    3. 在JSP页面中导入自定义的标签库:<%@ taglib uri="http://javaweb.test.ldj.com" prefix="myjst" %>。

    4. 在JSP页面中使用自定义的标签:<myjst:hello/>。

    javax.servlet.jsp.tagext.SimpleTag.setJspContext() 一定会被JSP引擎调用,用于向当前标签处理器类传入当前JSP页面的PageContext(JSP内置的9大对象之一,凭其可获取到其它8个对象)。

    private PageContext pageContext;
      @Override
      public void setJspContext(JspContext arg0) {
        System.out.println(arg0 instanceof PageContext);
        this.pageContext = (PageContext)arg0;
    }

    带属性的自定义标签

    1.先在标签处理器类中定义setter方法,建议把所有的属性类型都定义为String类型。

    2.在tld文件中的tag节点下添加属性描述:

    <!-- 描述当前标签的属性 -->
    <attribute>
      <!-- 属性名,需和标签处理器类的setter方法定义的属性相同-->
      <name>value</name>
      <!-- 该属性是否是必须的 -->
      <required>true</required>
      <!-- rtexprvalue: runtime expression value, 当前属性是否可以接受运行时表达式的动态值 -->
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    3.在页面中使用属性,属性名同tld文件中定义的名字。

  • 相关阅读:
    nowcoderD Xieldy And His Password
    Codeforces681D Gifts by the List
    nowcoder80D applese的生日
    Codeforces961E Tufurama
    Codeforces957 Mahmoud and Ehab and yet another xor task
    nowcoder82E 无向图中的最短距离
    nowcoder82B 区间的连续段
    Codeforces903E Swapping Characters
    Codeforces614C Peter and Snow Blower
    Codeforces614D Skills
  • 原文地址:https://www.cnblogs.com/itfky/p/13728270.html
Copyright © 2011-2022 走看看