宝哥软件园

jsp通过自定义标签库实现数据列表显示的方法

编辑:宝哥软件园 来源:互联网 时间:2021-09-28

本文实例讲述了jsp通过自定义标签库实现数据列表显示的方法。分享给大家供大家参考,具体如下:

1.定义标签库类UserListTag.java

包裹。com。亚内克。CMS。标签;导入Java。io。ioexception导入Java。乌提尔。ArrayList导入Java。乌提尔。迭代器;导入Java。乌提尔。列表;导入javax。servlet。JSP。JSPException导入javax。servlet。JSP。塔格文本。BodyTagSupport导入com。亚内克。CMS。VO。UserInfo公共类用户列表标签扩展了BodyTagSupport {私有字符串名称;//一个属性名私有迭代器它;//要迭代的对象private int cateid/用户类别id @Override public int doEndTag()引发JspException { try { if(正文内容!=null){正文内容。写出(正文内容。getenclosingwriter());} } catch(IOexception e){ e . print stack trace();}返回EVAL _佩奇;} @Override public int doStartTag()引发JspException { //这里根据用户类型,构造不同的列表数据,实现可以根据数据库获取listsuserinfo users=new arraylistsutserinfo();if(cateid==1){ users。添加(新用户信息('张三,20,'[电子邮件保护]');users.add(新用户信息('李四,30,'[电子邮件保护]');} else { users.add(new UserInfo('王五,33,'[电子邮件保护]');users.add(新用户信息('赵六,33,'[电子邮件保护]');} it=用户。迭代器();if(it==null){ 0返回SKIP _ BOdy } else { return continueNext();} } private int continueNext(){ if(it。HasNeXt()){ pageContext。SetAttribute(name,it.next()),PageContext .PAGE _ SCOpe);返回EVAL _ BODY _ TAG;} else { return SKIP _ BODY } } @ Override public int doAfterBody(){ return continue next();} public String getName(){ return name;} public void setName(String name){ this。name=name} public int getCateid(){ return cateid;} public void setCateid(int cateid){ this。cateid=cateid}}2.在网络信息目录下新建标签库描述文件my_cms_tag.tld:

my_cms_tag.tld

?可扩展标记语言版本='1.0 '编码='UTF-8 '?DOCTYPE taglib PUBLIC '-//Sun Microsystems,Inc .//DTD JSP标签库1.1//EN ' ' http://Java。星期日com/J2EE/dtds/web-jsptaglisbrary _ 1 _ 1。DTD ' taglibtlibversion 1.0/tlibversion jspversion 1.0/jspversionshortnamecms/shortnameuri 3358 www .58技术。cn/mystruts/tags-CMS/uri!-用户列表标签开始-标签名称用户列表标签/名称tag-classcom.yanek.cms.tag.UserListTag/tag-class正文-内容JSP/正文-内容变量!-name-给定nuser _ info/name-给定name-from-attributename/name-from-attribute variable-classcom.yanek.cms.vo.UserInfo/variable-class declartree/declare scopensted/scope/variable attributename name/name required true/required/attributename cateid/name required true/attribute/tag!- userListTag end - /taglib3 .web.xml配置

?可扩展标记语言版本='1.0 '编码='UTF-8 '?web-app版本=' 2.5 ' xmlns=' http://Java。星期日com/XML/ns/javaee ' xmlns : xsi=' http://www .w3。org/2001/XMLSchema-实例' xsi :架构位置=' http://Java。星期日http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd'欢迎文件列表welcome-fileindex.jsp/welcome-file/欢迎文件列表taglib taglib-uri/tags/my-CMS/taglib-lib JSP调用

“% @”页面语言=“Java”导入=“Java”。乌提尔。*,com。亚内克。CMS。VO。*”页面编码=“UTF-8”% @ taglib uri=“/tags/my-CMS”前缀=“my tag”% % String path=request。getcontextpath();字符串基本路径=请求。getscheme()' ://'请求。getservername()“:”请求。getserverport()“路径”/;%!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' HTML头基href=' %=基路径% ' title my JSP '测试。“JSP”起始页/title meta http-equiv=' pragma ' content=' no-cache ' meta http-equiv=' cache-control ' content=' no-cache ' meta http-equiv=' expires ' content=' 0 ' meta http-equiv='关键字' content='关键字1,关键字2,关键字- link rel='样式表type=' text/CSS ' href=' style。CSS '-/head body table width=' 500 px ' border=' 1 ' align=' center ' tr TD width=' 20% ' UserName/TD TD width=' 20% ' Age/TD tdEmail/TD/trmytag : userlisttag name=' user _ info 1 ' cateid=' 1 ' tr TD %=user _ info 1。getusername()%/TD TD %=user _ info 1。getage实体类定义

包裹。com。亚内克。CMS。VO;公共类用户信息{私有整数私有字符串用户名;私人字符串电子邮件;public int GetAge(){ return age;} public void setAge(int age){ this。年龄=年龄;}公共字符串getUserName(){ 0返回userName}公共void setUserName(字符串用户名){ this . userName=userName } public String getEmail(){ return email;} public void setEmail(String email){ this。email=email} public UserInfo(String userName,int age,String email){ super();this.age=年龄;this.userName=用户名;this . email=email } public UserInfo(){ } }运行效果如下图(网址输入:http://127 .0 .0 .1:8080/TestCms/页面/用户列表。JSP)

完整实例代码代码点击此处本站下载。

希望本文所述对大家机器人程序设计有所帮助。

更多资讯
游戏推荐
更多+