1、新建一个标签的基类,主要是完成一些基本属性的赋值:
package cn.util.tag;
import javax.servlet.jsp.tagext.TagSupport;
/**
* @author wtu
* 2008-9-8
*/
public class BaseTag extends TagSupport {
private String name="";
private String id="";
private String onchange="";
private String onclick="";
private String css="";
public String getCss() {
return css;
}
public void setCss(String css) {
this.css = css;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOnchange() {
return onchange;
}
public void setOnchange(String onchange) {
this.onchange = onchange;
}
public String getOnclick() {
return onclick;
}
public void setOnclick(String onclick) {
this.onclick = onclick;
}
public String init(){
StringBuffer outContent = new StringBuffer();
if (this.getId() != null && !"".equals(this.getId())) {
outContent.append(" id='");
outContent.append(this.getId());
outContent.append("'");
}
if (this.getName() != null && !"".equals(this.getName())) {
outContent.append(" name='");
outContent.append(this.getName());
outContent.append("'");
}
if (this.getOnchange() != null && !"".equals(this.getOnchange())) {
outContent.append(" onchange='");
outContent.append(this.getOnchange());
outContent.append("'");
}
if (this.getOnclick() != null && !"".equals(this.getOnclick())) {
outContent.append(" onclick='");
outContent.append(this.getOnclick());
outContent.append("'");
}
if (this.getCss() != null && !"".equals(this.getCss())) {
outContent.append(" class='");
outContent.append(this.getCss());
outContent.append("'");
}
return outContent.toString();
}
}
2、一个下拉选择框的标签类,这里主要是完成数据字典的装载:
package cn.util.tag;
import java.util.*;
import javax.servlet.jsp.*;
/**
* @author wtu
* 2008-9-8
*/
public class SelectTag extends BaseTag {
private String def="";
private String dictid="";
public String getDictid() {
return dictid;
}
public void setDictid(String dictid) {
this.dictid = dictid;
}
public String getDef() {
return def;
}
public void setDef(String def) {
this.def = def;
}
public int doStartTag() {
return (SKIP_BODY);
}
public int doEndTag() throws JspException {
Map dict=(Map)this.pageContext.getServletContext().getAttribute("dict");//从容器内存中读取字典信息
StringBuffer outContent = new StringBuffer();
JspWriter out = pageContext.getOut();
outContent.append("<select ");
outContent.append(this.init());
outContent.append(">\r\n");
outContent.append("<option value=''");
if (this.getDef() == null)
outContent.append(" selected");
outContent.append(">-请选择-</option>\r\n");
if (dict == null)
return SKIP_BODY;
List dictlist=(List) dict.get(this.getDictid());
if(dictlist==null)
return SKIP_BODY;
for(int i=0;i<dictlist.size;i++) {
DictInfoBean bean=(DictInfoBean) dictlist.get(i);
outContent.append("<option value='");
outContent.append(bean.getValue());
outContent.append("'");
if (this.getDef() != null && !"".equals(this.getDef()) &&
this.getDef().equals(bean.getValue()))
outContent.append(" selected");
outContent.append(">");
outContent.append(getName());
outContent.append("</option>\r\n");
}
outContent.append("</select>\r\n");
try {
out.println(outContent);
} catch (java.io.IOException ie) {
ie.printStackTrace();
throw new JspException(ie);
}
return SKIP_BODY;
}
}
3、标签文件(tags.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>1.2</jspversion>
<shortname>dict</shortname>
<uri>/sz</uri>
<tag>
<name>select</name>
<tagclass>cn.util.tag.SelectTag</tagclass>
<info>get select value</info>
<attribute>
<name>id</name>
<required>fasle</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>def</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>css</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>dictid</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onchange</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onclick</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
4、web.xml文件配置,添加如下代码:
<taglib>
<taglib-uri>/sz</taglib-uri>
<taglib-location>/WEB-INF/tags.tld</taglib-location>
</taglib>
5、JSP页面使用:
<%@ taglib prefix="sz" uri="/sz"%>
<sz:label dictid="sex" val="1"></sz:label>
本日志只讲述具体的实现方法,数据字典等代码和数据库结构没给出,请自行完成。
分享到:
相关推荐
struts实现自定义标签
jsp页面自定义标签使用,以及Java后台实现自定义标签功能方法
NULL 博文链接:https://wujie2008.iteye.com/blog/1694631
JAVA自定义标签完整代码,可以运行,可以根据自己需要添加标签,此代码目前已经实现两个标签,均可以使用。通过标签进行数据小数点截取
详细介绍Java中的自定义标签,附加代码说明相关配置及实现!推荐下载!!
tag标签相关属性:实现简单标签处理程序 标签处理程序是一个在运行时调用的Java类,它包含在 JSP文件中使用的自定义标签的实现代码.标签处理程序必须实现或扩展javax.servlet.jsp.tagext包中的类和接口.javax.servlet...
Struts2中实现自定义标签很简单,主要分为3步: 1.创建taglib文件(.tld),编写标签声明。 2.编写自定义标签类。 3.在页面中使用标签。 下面以一个自定义的分页标签为例,进行说明。 其实,开发自定义标签并不...
实现自定义标签功能,使用maven引入库,详细使用请查看我的博文 https://blog.csdn.net/TT18949344290/article/details/79836691
自定义小票打印,通过打印机名称打印,设置纸张大小,分辨率问题
采用自定义标签实现java代码轻松实现分页的功能,有图片详解有源码共享,有文档详细说明,源码详细易懂,
资源内容:java自定义标签开发;JSP页面中自定义标签详解教程;JSP自定义标签简介;taglib_原理和实现;更多场景的示例Demo;
jsp和java联合实现了自定义标签的功能,主要技术继承了TagSupport类和编写对应bodytag.tld配置文件 实现了分页功能 当前功能点所在位置 循环遍历数据
JSP中的标签库可以让我们自己定义新标签 JSP动作标签本质上就是一段Java代码,在JSP页面转换成Servlet期间进行...自定义标签实际上是一个实现了特定接口的Java类。 标签封装了一些常用的功能 标签的集合就构成了标签库
自定义标签.java语言 web项目开发资料浅谈.
在java里面,如何写一个公用的自定义分页标签的实现
Java基于要SWing技术自定义标签的边界效果,通过javax.swing.border.Border 接口,进行自定义边界类OwnBorder。可以实现空边界(EmptyBorder)、斜切边界(BevelBorder)、蚀刻边界(EtchedBorder)、线条边界...
通过BodyTagSupport实现了自定义的标签,主要实现功能为分页技术以及当前功能点所在位置。
自定义标签实现jdbc的分页,使用的mysql数据库。
其将JSP页面中的(复杂、重复并且格式统一的)内容封装,... 标签对应一个类,在类中有固定的方法,这些方法在编译JSP页面中的自定义标签时,被调用。方法内输出被封装的内容;标签——>JAVA类——>类方法输出页面内容
java web技术搭建继承实现tagsupport类,实现jsp页面与servlet服务器端的数据交互,达到数据库页页面的分页的操作。