日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用自定义的标签

發布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用自定义的标签 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(1) 構思,比如寫一個對指定名字說hello的標簽,應該是<前綴:hello user="zhangsan"/>

(2) 寫類

要實現的基礎接口:javax.serlvet.jsp.tagext.SimpleTag

其中含有五個方法:

doTag ---> 實現標簽的功能 .setJspContext ---> pageContext .setParent ---> 父標簽的實現類 setJspBody ---> JspFragement getParent

要實現五個方法,顯得很繁瑣,javax.servlet.jsp.tagext.SimpleTagSupport類實現了這個

基礎接口,我們在寫類時只需要繼承這個類,然后覆蓋doTag方法即可。

類如下:

package com.kettas.tag;import javax.servlet.http.*;import javax.servlet.jsp.tagext.*; import javax.servlet.jsp.*;import java.io.*; public class HelloHandler extends SimpleTagSupport{ private String user; public void setUser( String user ){ this.user = user; } public String getUser(){ return user; } @Override public void doTag() throws JspException , IOException{ PageContext ctx = (PageContext)this.getJspContext(); ctx.getOut().println( "hello " + user ); ctx.getOut().flush(); } }

(3) 寫tld配置文件(位置為 : /WEB-INF/*.tld)

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"><taglib><tlibversion>1.0</tlibversion> <jspversion>2.0</jspversion> <shortname>mytag</shortname> <!-- 指定命名空間 引入標簽時使用 --> <uri>liucy@cernet.com</uri> <tag> <!-- 標簽名 --> <name>hello</name> <!-- 標簽對應的類 --> <tag-class>com.kettas.tag.HelloHandler</tag-class> <!-- 標簽體之中是否含有內容 --> <body-content>empty</body-content> <!-- 標簽屬性 --> <attribute> <name>user</name> <type>java.lang.String</type> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>

(4) 在jsp文件中使用:

<%@page contentType="text/html"%><%-- 注意引入自定義標簽的方式, prefix屬性指定標簽前綴, 前綴解決不同標簽庫標簽重名 --%><%@taglib uri="liucy@cernet.com" prefix="liucy"%><html> <body> <h2> <liucy:hello user="<%= request.getParameter( "name" )%>"/> </h2> </body> </html>

自定義一個循環標簽 :

類 : ===================================

package com.kettas.tag;import javax.servlet.http.*;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;import java.io.*; public class LoopHandler extends SimpleTagSupport{ private int begin; private int end; public void setBegin( int begin ){ this.begin = begin; } public int getBegin( ){ return begin; } public void setEnd(int end ){ this.end = end; } public int getEnd( ){ return end; } @Override public void doTag()throws JspException ,IOException{ // JspFragment對象可以獲取標簽體內部的內容 JspFragment f = this.getJspBody(); PageContext ctx = (PageContext)this.getJspContext(); for( int i = begin ; i < end ; i++){ f.invoke( ctx.getOut() ); } } }

配置文件如下 :============================

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"><taglib><tlibversion>1.0</tlibversion> <jspversion>2.0</jspversion> <shortname>mytag</shortname> <uri>liucy@cernet.com</uri> <tag> <name>hello</name> <tag-class>com.kettas.tag.HelloHandler</tag-class> <body-content>empty</body-content> <attribute> <name>user</name> <type>java.lang.String</type> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> <tag> <name>loop</name> <tag-class>com.kettas.tag.LoopHandler</tag-class> <!-- 標簽體內含有內容, 并且是非腳本的內容 --> <body-content>scriptless</body-content> <attribute> <name>begin</name> <type>int</type> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>end</name> <type>int</type> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>

使用如下 :=====================================

<%@taglib uri="liucy@cernet.com" prefix="liucy"%><liucy:loop begin="0" end="3"> <h2>Hello!</h2> </liucy:loop>

如此便可連續在網頁上輸出三個"Hello !"

轉載于:https://www.cnblogs.com/yuyu666/p/9743854.html

總結

以上是生活随笔為你收集整理的使用自定义的标签的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。