zoukankan      html  css  js  c++  java
  • 干程序员这么多年,没有自己的标签库怎么哪的出手?

    干程序员这么多年,没有自己的标签库怎么哪的出手? 基于servlet 和jsp2.0 实现自己的jsp自定义标签

    自己实现一个自定义标签的小demo,效果如下

    实现步骤

    1. 做一个Bo 也就是javabean

    package com.bpehome.bo;

    public class UserBo {
     
     private String userName;
     
     private String email;
     
     private String age;

     public String getUserName() {
      return userName;
     }

     public void setUserName(String userName) {
      this.userName = userName;
     }

     public String getEmail() {
      return email;
     }

     public void setEmail(String email) {
      this.email = email;
     }

     public String getAge() {
      return age;
     }

     public void setAge(String age) {
      this.age = age;
     }
    }

    2. 标签实现类

    package com.bpehome.tag;

    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.tagext.TagSupport;

    import com.bpehome.bo.UserBo;

    public class UserTag extends TagSupport {
     
     private UserBo user;

         @Override

         public int doStartTag() throws JspException {

             try {

                 JspWriter out = this.pageContext.getOut();

                 if(user == null) {

                     out.println("No UserInfo Found...");

                     return SKIP_BODY;

                 }

                 out.println("<table width='500px' border='1' align='center' style='border:1px solid red'>");

                 out.println("<tr>");

                 out.println("<td width='20%'>Username:</td>");

                 out.println("<td>" + user.getUserName() + "</td>");

                 out.println("</tr>");

                 out.println("<tr>");

                 out.println("<td>Age:</td>");

                 out.println("<td>" + user.getAge() + "</td>");

                 out.println("</tr>");

                 out.println("<tr>");

                 out.println("<td>Email:</td>");

                 out.println("<td>" + user.getEmail() + "</td>");

                 out.println("</tr>");

                 out.println("</table>");

             } catch(Exception e) {

                 throw new JspException(e.getMessage());

             }

             return SKIP_BODY;

         }

         @Override

         public int doEndTag() throws JspException {

             return EVAL_PAGE;

         }

         @Override

         public void release() {

             super.release();

             this.user = null;

         }

         //getter and setters

         public UserBo getUser() {

             return user;

         }

         public void setUser(UserBo user) {

             this.user = user;

         }
    }

    3.web-inf 文件夹下 做一个mytaglib.tld 文件

    <?xml version="1.0" encoding="UTF-8"?>

    <taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">

    <tlib-version>1.0</tlib-version>

    <jsp-version>2.0</jsp-version>

    <short-name>sbean</short-name>

    <uri>/mytaglib</uri>

    <tag>

        <name>showUserBo</name>

        <tag-class>com.bpehome.tag.UserTag</tag-class>

        <body-content>empty</body-content>

        <attribute>

            <name>user</name>

             <required>false</required>

             <rtexprvalue>true</rtexprvalue>

        </attribute>

     </tag>

    </taglib>

    4.web.xml文件中定义如下

    <jsp-config>
        <taglib>
            <taglib-uri>/mytaglib</taglib-uri>
            <taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
        </taglib>
      </jsp-config>

    5.如何使用这个标签

    <%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
    <%@ taglib prefix="s" uri="/struts-tags"%>
    <%@ page isELIgnored="false" %>
    <%@ taglib uri="/mytaglib" prefix="sbean"%>

    <%@ page import="com.bpehome.bo.UserBo" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>自定义标签练习</title>

    <%
     UserBo user = new UserBo();

        user.setUserName("令狐冲之12");

        user.setAge("25");

        user.setEmail("1055592525@qq.com");
     
        pageContext.setAttribute("userBo", user); 

     %>

    </head>

    <body>
      <!-- 给标签设置user属性绑定要展现的UserInfo对象  -->

        <sbean:showUserBo user="${pageScope.userBo}" />

    </body>
    <html>

    ----------------------------------------------------------

    别惊呆哦 大家有什么不明白的吗?

  • 相关阅读:
    【搜索引擎】Solr最新安装以及通过关系型数据库(MySQL,Oracle,PostgreSQL)导入数据
    【搜索引擎】SOLR VS Elasticsearch(2019技术选型参考)
    【Java源码】集合类-优先队列PriorityQueue
    【Java源码】树-概述
    Go语言调度器之创建main goroutine(13)
    Go语言goroutine调度器初始化(12)
    Go语言goroutine调度器概述(11)
    线程本地存储及实现原理
    操作系统线程及线程调度
    系统调用
  • 原文地址:https://www.cnblogs.com/qylbg/p/3191183.html
Copyright © 2011-2022 走看看