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>

 

posted @ 2022-03-06 16:15  伊万  阅读(31)  评论(0编辑  收藏  举报