Struts 自定义标签操作步骤。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>2.2.3</tlib-version> <jsp-version>1.2</jsp-version> <short-name>tc</short-name> <uri>/taglibtc</uri> <display-name>"Struts Tags"</display-name> <description><![CDATA["To make it easier to access dynamic data; the Apache Struts framework includes a library of custom tags. The tags interact with the framework's validation and internationalization features; to ensure that input is correct and output is localized. The Struts Tags can be used with JSP FreeMarker or Velocity."]]></description> <tag> <name>tcBean</name> <tag-class>pjmstc.tcBean</tag-class> <body-content>JSP</body-content> <description><![CDATA[Execute an action from within a view]]></description> </tag> </taglib> |
内容 | 描述 |
---|---|
<uri>XXX</uri> | 标签文件标识 |
<name>XXX</name> | 定义标签的名字 |
<tag-class>XXX</tag-class> | 定义标签的类 |
<body-content>XXX</body-content> | 定义标签的内容属性 |
输入标签文件标识,例:/mytag
在 web.xml 文件的 </welcome-file-list> 标识下面添加如下配置内容:
<taglib> <taglib-uri>/taglibtc</taglib-uri> <taglib-location>/WEB-INF/taglibtc.tld</taglib-location> </taglib> |
内容 | 描述 |
---|---|
<taglib-uri>XXX</taglib-uri> | 标签文件标识,要与 JSP 画面对应 |
package pjmstc; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspTagException; import javax.servlet.jsp.tagext.TagSupport; public class tcBean extends TagSupport { public int doStartTag() throws JspException { try{ pageContext.getOut().print("My Tag OK!"); } catch(Exception e) {} String valid = pageContext.getRequest().getParameter("key"); // 如果flag设定为key,就显示本体文字内容 if(valid!=null) if(valid.equals("123")) { return EVAL_BODY_INCLUDE; } return SKIP_BODY; } } |
内容 | 描述 |
---|---|
TagSupport | 标签类的父类,还可以使用: |
doStartTag() | 标签开始时的处理 |
return EVAL_BODY_INCLUDE | 返回该值表示页面中标签内部的内容有效 |
return SKIP_BODY | 返回该值表示页面中标签内部的内容全部忽略 |
jsp-api.jar 和 servlet-api.jar
输入 TOMCAT 安装目录:
CLASSPATH = ...;
新建一个 JSP 文件以测试标签,文件内容示例如下:
<%@ taglib uri="/taglibtc" prefix="abc" %> <abc:tcBean>abcd</abc:tcBean> |