当前位置:编程学习 > JS >>

自定义Struts2简单标签

我以获取当前时间的标签为例,开发一个自定义的标签bin:currentTime。操作步骤如下:


一、首先要定义一个标签处理类。


[java] 
package org.binbin.tag; 
 
import java.io.IOException; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
 
import javax.servlet.jsp.JspException; 
import javax.servlet.jsp.JspWriter; 
import javax.servlet.jsp.tagext.TagSupport; 
 
/**
 * 自定义标签
 * @author binbin(cn.binbin@qq.com)
 * @date 2013-3-28
 */ 
public class TimeTag extends TagSupport 

    private static final long serialVersionUID = 6918846280074418825L; 
 
    @Override 
    public int doStartTag() throws JspException 
    { 
        JspWriter out = this.pageContext.getOut(); 
         
        //定义时间输出格式  
        DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
        //获取当前时间的指定格式字符串  
        String str = df.format(new Date()); 
         
        try 
        { 
            //输出当前时间字符串到页面  
            out.print(str); 
        } catch (IOException e) 
        { 
            //如果出现异常,当前程序无法处理,所以重新抛出一个运行时异常  
            throw new RuntimeException(e); 
        } 
        return super.doStartTag(); 
    } 

package org.binbin.tag;

import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

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

/**
 * 自定义标签
 * @author binbin(cn.binbin@qq.com)
 * @date 2013-3-28
 */
public class TimeTag extends TagSupport
{
    private static final long serialVersionUID = 6918846280074418825L;

    @Override
    public int doStartTag() throws JspException
    {
        JspWriter out = this.pageContext.getOut();
       
        //定义时间输出格式
        DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        //获取当前时间的指定格式字符串
        String str = df.format(new Date());
       
        try
        {
            //输出当前时间字符串到页面
            out.print(str);
        } catch (IOException e)
        {
            //如果出现异常,当前程序无法处理,所以重新抛出一个运行时异常
            throw new RuntimeException(e);
        }
        return super.doStartTag();
    }
}
二、然后在WEB-INF目录下添加一个标签库定义文件bin.tld


[html]
<?xml version="1.0" encoding="UTF-8" ?> 
<taglib 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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" 
    version="2.0"> 
    <tlib-version>1.0</tlib-version> 
    <short-name>bin</short-name> 
    <uri>/bin-tags</uri> 
     
    <tag> 
        <name>currentTime</name> 
        <tag-class>org.binbin.tag.TimeTag</tag-class> 
        <body-content>empty</body-content> 
    </tag> 
</taglib> 

<?xml version="1.0" encoding="UTF-8" ?>
<taglib 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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
 version="2.0">
 <tlib-version>1.0</tlib-version>
 <short-name>bin</short-name>
 <uri>/bin-tags</uri>
 
 <tag>
  <name>currentTime</name>
  <tag-class>org.binbin.tag.TimeTag</tag-class>
  <body-content>empty</body-content>
 </tag>
</taglib>
三、在jsp页面中使用该标签


[html] 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<!-- 需要先导入相应标签库 --> 
<%@ taglib uri="/bin-tags" prefix="bin"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
    <title>My JSP '1.jsp' starting page</title> 
  </head> 
  <body> 
    系统当前时间:<bin:currentTime/> 
  </body> 
</html> 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!-- 需要先导入相应标签库 -->
<%@ taglib uri="/bin-tags" prefix="bin"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP '1.jsp' starting page</title>
  </head>
  <body>
    系统当前时间:<bin:currentTime/>
  </body>
</html>

四、运行效果

补充:Web开发 , Jsp ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,