1,建立自己的标签库tld文件
topdt-tags.tld:
<?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">
<display-name>topdt</display-name>
<tlib-version>1.0</tlib-version>
<short-name>td</short-name>
<tag>
<name>page</name>
<tag-class>com.topdt.frame.web.tags.PageTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>template</name>
<required>true</required>
</attribute>
</tag>
<tag>
<name>ss</name>
<tag-class>com.topdt.frame.web.tags.SubStringTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>start</name>//这里添加标配的属性
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>end</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
2:web.xml文件中加入:
<jsp-config>
<taglib>
<taglib-uri>/topdt</taglib-uri>
<taglib-location>
/WEB-INF/tlds/topdt-tags.tld
</taglib-location>
</taglib>
</jsp-config>
3:创建class:
package com.topdt.frame.web.tags;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class SubStringTag extends BodyTagSupport {
private static final long serialVersionUID = 1L;
private int start = 0;//这里对应tld中的属性
private int end = 0;
public int getEnd() {
return end;
}
public void setEnd(int end) {
this.end = end;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int doEndTag() throws JspException {
try {
JspWriter out = pageContext.getOut();
String b = this.getBodyContent().getString();
b = uToS(b);
if (end < b.length()) {
b = b.substring(start, end)+ "..";
}
out.write(b);
} catch (Exception e) {
throw new JspException(e);
}
return SKIP_BODY; // 不包含主体内容
}
private String uToS(String s) throws Exception {
String[] s3 = s.split(";");
String s1 = "";
if (s3.length > 1) {
for (int i = 0; i < s3.length; i++) {
String[] s2 = s3[i].split("&#");
if (s2.length > 1) {
int v = Integer.parseInt(s2[1], 10);
s1 = s1 + s2[0] + (char) v;
} else {
s1 = s1 + s3[i];
}
}
return s1;
} else {
return s;
}
}
}
分享到:
相关推荐
在Struts2中,自定义标签是提高代码可读性和可维护性的重要工具。本文将深入探讨Struts2自定义标签的实现机制、优点以及如何在实际项目中进行应用。 一、Struts2自定义标签的概念 自定义标签是JSP的一种扩展,允许...
在 Struts 中,我们可以通过实现 `org.apache.struts.taglib.Tag` 接口来创建自定义标签。 二、创建自定义标签库 1. 创建 Tag 类:首先,我们需要创建一个 Java 类,该类继承自 `org.apache.struts.taglib.Tag` 或...
1. **创建自定义标签**:在Struts2中,自定义标签是通过实现`org.apache.struts2.views.jsp.TagSupport`接口来创建的。你需要创建一个Java类,继承这个接口,并实现相关方法。例如,你可以创建一个名为`PagingTag`的...
自定义标签是Struts2框架中的一个重要特性,它允许开发者创建自己的标签库,以更直观、易读的方式在JSP页面中处理业务逻辑。下面将详细介绍Struts2自定义标签的相关知识点。 首先,理解自定义标签的作用。在传统的...
4. **创建分页标签库**:Struts2支持自定义标签,你可以创建一个`.tld`文件来定义分页标签。标签库应该包含开始、结束、上一页、下一页等标签,以便在视图层中方便地使用。 5. **实现标签处理类**:对应的Java类...
在Struts2中,自定义标签的实现是提升可重用性和简化视图层代码的一个重要特性。下面我们将深入探讨如何在Struts2中实现自定义标签,以及其背后的原理。 自定义标签的创建主要涉及以下三个步骤: 1. **创建taglib...
一、创建自定义标签库 1. 定义标签接口:在Struts2中,我们通常使用`com.opensymphony.xwork2.util.base.TagSupport`作为自定义标签的基础类,它继承了JSP的`javax.servlet.jsp.tagext.TagSupport`,提供了访问上...
然而,有时候我们可能需要根据项目需求定制特定的功能,比如这里的"自定义标签代替Struts标签实现分页"。下面将详细阐述这个主题。 一、自定义标签的原理 自定义标签是JavaServer Pages (JSP) 技术的一个强大特性,...
创建自定义标签通常包括以下几个步骤: 1. 创建一个实现了javax.servlet.jsp.tagext.Tag接口或其子接口的Java类,这个类将处理标签的行为。 2. 编写TLD文件,描述标签的元数据,如标签名、属性、描述等。 3. 在JSP...
Struts 是一个强大的Java Web应用程序开发框架,它提供了一套丰富的自定义标签库,使得开发者在构建用户界面时能够更加方便地处理业务逻辑和数据展示。本文将详细讲解Struts中的Bean Tags、HTML Tags和Logic Tags的...
1. **创建自定义标签**:创建自定义标签通常涉及两个主要步骤:编写标签处理类和定义标签库描述文件(TLD)。处理类是Java类,它实现了`TagSupport`或`SimpleTagSupport`接口,提供处理标签逻辑的方法。TLD文件(如`...
在Struts2中创建自定义标签,通常涉及以下几个步骤: 1. **创建标签库定义文件**: 首先,你需要创建一个.TLD(Tag Library Descriptor)文件,这是一个XML文件,用于定义标签库的元数据,包括标签的名字、属性、...
创建自定义Struts2标签涉及以下几个步骤: 1. **定义标签处理类**: - 创建一个继承自`org.apache.struts2.views.jsp.TagSupport`或`org.apache.struts2.views.jsp.ui.Tag`的Java类。`TagSupport`是基本的标签支持...
Struts2自定义标签是开发Web应用时为了增强框架功能、提高代码复用性和可维护性而创建的自定义HTML标签。这些标签可以扩展Struts2内置的标签库,以满足特定项目的需求。在本例中,我们关注的是实现一个自定义的分页...
本项目"自定义分页标签struts2,spring"是针对Struts2和Spring框架的一个自定义标签实现,旨在简化开发过程,提高代码的可复用性和可维护性。下面我们将详细探讨这个项目中的关键技术点。 首先,Struts2是一个非常...