• JSTL EL综合应用


     

     

     

     

     

     

     

     

     

     

    package com.xzit.customtag;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;
    
    public class DateFormatTag extends TagSupport {
    
        private Date target;    //对应标签的target属性
        
        private String format;    //对应标签的format属性
    
        private static String DATE_BASE="date";//默认格式
        
        private static String DATE_FULL="datefull";
        
        private static String TIME="time";
        
        private static String TIME_FULL="timefull";
        
        @Override
        public int doStartTag() throws JspException {
            PrintWriter out = null;
            try {
                out = this.pageContext.getResponse().getWriter();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            
            if(format==null || format.equals("")) {
    
                String dateStr = new SimpleDateFormat("yy/M/d").format(target);
                out.print(dateStr);
                
            }else if(format.equals(DATE_BASE)) {
                
                String dateStr = new SimpleDateFormat("yy/M/d").format(target);
                out.print(dateStr);
            }else if(format.equals(DATE_FULL)) {
                
                String dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(target);
                out.print(dateStr);
            }else if(format.equals(TIME)) {
                
                String dateStr = new SimpleDateFormat("h:m:s").format(target);
                out.print(dateStr);
            }else if(format.equals(TIME_FULL)) {
                
                String dateStr = new SimpleDateFormat("HH:mm:ss").format(target);
                out.print(dateStr);
            }else {
                try {
                    throw new Exception("format 属性的有效值必须是:"+DATE_BASE+","+DATE_FULL
                            +","+TIME+","+TIME_FULL);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return super.doStartTag();
        }
        
        @Override
        public int doEndTag() throws JspException {
            
            return DateFormatTag.EVAL_PAGE;
        }
    
    
        public Date getTarget() {
            return target;
        }
    
        public void setTarget(Date target) {
            this.target = target;
        }
    
        public String getFormat() {
            return format;
        }
    
        public void setFormat(String format) {
            this.format = format;
        }
        
    }
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE taglib
      PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
      "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    <taglib>
      <tlib-version>1.0</tlib-version>
      <jsp-version>1.2</jsp-version>
      <short-name>custom_RT</short-name>
      <display-name>CustomTag</display-name>
      <description>自定义标签</description>
    
      <validator>
        <validator-class>
            org.apache.taglibs.standard.tlv.JstlCoreTLV
        </validator-class>
        <description>
            Provides core validation features for JSTL tags.
        </description>
      </validator>
    
      <tag>
        <name>date</name>
        <tag-class>com.xzit.customtag.DateFormatTag</tag-class>
        <body-content>empty</body-content>
        <description>
            转换Date对象为字符串格式
        </description>
        <attribute>
            <name>target</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
            <type>java.util.Date</type>
        </attribute>
        
        <attribute>
            <name>format</name>
            <required>false</required>
            <rtexprvalue>false</rtexprvalue>
            <type>java.lang.String</type>
        </attribute>
      </tag>
    
    </taglib>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.*"%>
    <%@ taglib uri="/WEB-INF/mytag/customTag.tld" prefix="m" %>
    <!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>自定义标签</title>
        </head>
        <%
            Date time = new Date();
        %>
        <body>
            <m:date target="<%=time %>" format="timefull"/><br>
            剩余部分adddd
        </body>
    </html>
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
      <display-name>customTag2</display-name>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
  • 相关阅读:
    think in java
    TASLock TTASLock
    多线程
    jenkins unable to delete file
    ubuntu sun-jdk
    py2exe
    memcached安装
    redis安装
    ubuntu安装ssh
    mysql远程访问
  • 原文地址:https://www.cnblogs.com/zengyu1234/p/15972436.html
Copyright © 2020-2023  润新知