jsp標簽技術非常實用,這不,才到公司實習就用到了。我是用一個jsp標簽封裝了jqGrid(jQuery的一個表格插件)通過一個select語句就能自動構建表格,並能從數據庫中取得參數。整個小架構就不發出來了,因為我把jqGrid表格進行了二次封裝,如果又想要的,可以留言哈。下面主要講的是jsp自定義標簽的用法。 一、寫一個tag的解析類 要繼承TagSupport類,復寫 doStartTag()或者doEndTag就行了。 package com.lubby.tag; import java.io.IOException; import java.util.Properties; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; import org.apache.struts2.ServletActionContext; import com.lubby.util.PropertiesUtil; import com.opensymphony.xwork2.ActionContext; public class jqgrid extends TagSupport { private String sql; @Override public int doEndTag() throws JspException { try { PropertiesUtil.setProperties(sql); System.out.println(sql); pageContext.getOut().print("<div id=\"content\"><table id=\"gridTable\" ></table><div id=\"gridPager\" style=\"height:40px\" ></div></div>"); } catch (IOException e) { e.printStackTrace(); } return EVAL_PAGE; } public void setSql(String sql) { this.sql = sql; } public String getSql() { return sql; } } 二、建立tld文件 (tld的taglib有兩種引用,我用的是不用再web.xml配置的那種) <?xml version="1.0" encoding="UTF-8" standalone="no"?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"> <description><![CDATA["To make it easier to access dynamic data;"]]></description> <display-name>Permission Tags</display-name> <tlib-version>1.0</tlib-version> <short-name>lubby</short-name> <uri>www.lubby.com</uri> //在聲明標簽的時候使用 <tag> <name>jqgrid</name> //在jsp中標簽名 <tag-class>com.lubby.tag.jqgrid</tag-class> //標簽的解釋類 <body-content>empty</body-content> //沒有body體 <attribute> //設置參數 <name>sql</name> //參數名為sql <required>true</required> //參數是必須提供的 <fragment>true</fragment> </attribute> </tag> </taglib> 三、在頁面上使用標簽 1.聲明標簽 <%@ taglib prefix="s" uri="www.lubby.com"%> 2.使用標簽 <s:jqgrid sql = "select t1.id as 編號 ,t1.bussiness as 業務類型 ,t1.customer as 手機號碼 ,t1.brand as 品牌 from info t1" /> 3.客戶端訪問時生成的代碼是: <div id="content"><table id="gridTable" ></table><div id="gridPager" style="height:40px" ></div></div> 需要注意的是:jsp自定義標簽的原理:jsp最終會轉化為servlet,自定義標簽也會轉化為servlet裡面執行代碼,servlet會返回給客戶端html代碼, 客戶端(游覽器)解釋所接收到的html代碼。自定義標簽由應用服務器轉化成html代碼。客戶端訪問的實際上是已經轉化的html頁面。