首页 > 代码库 > Jsp_demo:自定义标签
Jsp_demo:自定义标签
Jsp自定义标签:
1.继承SimpleTagSupport,重写doTag()。
2.在WEB-INF/ 下配置**.tld文件
3.Jsp页面引入自定义标签:<%@ taglib uri="***" prefix="s"%>
自定义标签demo实现:在jsp页面将对象存入pageContext.setAttribute(),使用标签输出该对象的所有方法,成员变量及值。
TestTag.java:
package mytag;import java.io.IOException;import java.io.Writer;import java.lang.reflect.Field;import java.lang.reflect.Method;import javax.servlet.jsp.tagext.SimpleTagSupport;public class TestTag extends SimpleTagSupport{ private String obj;//带属性标签必须为每个属性提供对应的 setter 和 getter 方法 public String getObj() { return obj; } public void setObj(String obj) { this.obj = obj; } public void doTag() throws IOException{ Writer out = getJspContext().getOut(); Object object=(Object)getJspContext().getAttribute(obj); Class<?> c=object.getClass(); Field fields[]=c.getDeclaredFields(); for(Field f:fields ){ f.setAccessible(true);//私有成员也能访问 try { out.write(f.getName()+":"+f.get(object)+"</br>"); } catch (IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); } } Method methods[]=c.getMethods(); for(Method m:methods){ out.write(m.toString()+"</br>"); } }}
mytaglib.tld:
<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd"><taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>mytaglib</short-name> <uri>/mytaglib</uri> <tag> <!-- 定义标签名 --> <name>info</name> <!-- 定义标签处理类 --> <tag-class>mytag.TestTag</tag-class> <!-- 定义标签体为空 --> <body-content>empty</body-content> <!-- 配置标签属性:driver --> <attribute> <name>obj</name> <required>true</required> <fragment>true</fragment> </attribute> </tag></taglib>
test.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="mytag.User,java.util.*" %> <%@ taglib uri="/mytaglib" prefix="s" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><% pageContext.setAttribute("date", new Date());%><b><s:hello/></b><b><s:info obj="date"/></b></body></html
Jsp_demo:自定义标签
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。