摘自于网络,供自己参考。
<?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>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>tag</short-name>
<uri>/tag</uri>
<display-name>a demo taglib</display-name>
<description>
<![CDATA["some description"]]>
</description>
<tag>
<name>head</name>
<tag-class>com.demo.ui.HeadTag
</tag-class>
<body-content>empty</body-content>
<description>
<![CDATA[some description]]>
</description>
</tag>
</taglib>
编写HeadTag.java类:
public class HeadTag extends AbstractUITag {
@Override
public Component getBean(ValueStack arg0, HttpServletRequest arg1,
HttpServletResponse arg2) {
return new Head(arg0,arg1,arg2);
}
}
编写Head.java类:
public class Head extends UIBean {
public Head(ValueStack stack, HttpServletRequest request,
HttpServletResponse response) {
super(stack, request, response);
}
@Override
protected String getDefaultTemplate() {
return "head";
}
}
编写head.ftl模板文件:
<div>head text</div>
<script type="text/javascript" src="<@s.url value='/struts/com/demo/javascript/script.js' />"></script>
在web.xml中web-app节点下添加如下内容(我使用的是servlet 2.4):
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/tag.tld</taglib-uri>
<taglib-location>/tag</taglib-location>
</taglib>
</jsp-config>
最后就可以在页面中使用这个自定义标签了page.jsp:
<%@ taglib prefix="tag" uri="/tag" %>
……
<tag:head />
转了一大圈,才算转出来,下面我来讲下这个流程:
1.page.jsp里面taglib里面的属性prefix是指下面的标签都是以tag打头,比如:<tag:head/>,属性uri是指web.xml里面映射的路径/WEB-INF/tag.tld,也可以跳过web.xml,直接在page.jsp里面的属性uri使用/WEB-INF/tag.tld
2.像tag:head里面的属性,比如head,都是在tag.tld里面定义的,如果使用head,会找到类com.demo.ui.HeadTag,而类HeadTag又使用到了类com.demo.ui.Head。注意这里一定要这么写,直接在tag.tld里面定位类com.demo.ui.Head是不行的
3.com.demo.ui.Head类里重载了方法getDefaultTemplate,返回head的话,就意味着去找head.ftl模板中,这里我把模板放到template.xhtml包里,struts2会自动找到这个模板
4.如果需要把自定义的标签打成jar包,需要把类com.demo.ui.HeadTag,类com.demo.ui.Head,template.xhtml.head.ftl,/WEB-INF/tag.tld打到jar包即可,需要注意的是tag.tld和其他文件不同,需要放到META-INF文件夹下,跟MANIFEST.MF同级,应用会自动找到这个自定义标签,不需要在web.xml文件里描述了
分享到:
相关推荐
通过struts2 自定义标签实例,可以用这个对项目中的实现自定义标签。从而减少代码。
Struts2自定义标签,附带配置文件及后台代码,从工作当中整理
Struts2中实现自定义标签很简单,主要分为3步: 1.创建taglib文件(.tld),编写标签声明。 2.编写自定义标签类。 3.在页面中使用标签。 下面以一个自定义的分页标签为例,进行说明。 其实,开发自定义标签并不...
Struts2自定义分页标签很详细了,新手可以少走弯路,节约时间 资源包括了后台如何操作。
基于struts2的自定义分页标签实现的一个demo,连接数据库为Oracle
附件是一个简单的自定义标签,提供给大家参考,例子很简单,希望对大家有帮助,基于eclipse 开发
tag struts2 自定义标签 实例 tag struts2的自定义标签实例
Struts 2 自定义标签分页,有简单上下分页和数字分页
struts实现自定义标签
STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS...
自定义标签,直接代码,直接模仿开发即可 public class ButtonTag extends AttributeTag { //tld中定义的属性 public String label; public String url; public String click; public String confirm; public ...
自定义标签主要包括三个步骤: 1、编写java类,继承TagSupport类; 2、创建tld文件,影射标签名和标签的java类; 3、jsp页面引入tld。 博文地址:http://blog.csdn.net/itmyhome1990/article/details/50718282
举例解说Bean Tags,HTML Tags 以及Logic Tags的使用方法。
struts2的自定义标签写法,并且有一个例子代码。
Struts2_自定义标签的方法