`
fackyou200
  • 浏览: 311069 次
  • 性别: Icon_minigender_1
  • 来自: 山西太原
社区版块
存档分类
最新评论

Struts2.0自定义标签

    博客分类:
  • s2sh
阅读更多

1.编写自定义标签类。
2. 创建taglib文件(.tld),编写标签声明。

第一步:
首先编写时间格式转换的方法: 

 

public static String getDisplayTime(Date date){    
         Date nowDate=new Date();    
         Calendar oldCalendar=Calendar.getInstance();    
         Calendar nowCalendar=Calendar.getInstance();    
         oldCalendar.setTime(date);    
         nowCalendar.setTime(nowDate);    
        int day=getDaysBetween(oldCalendar,nowCalendar);    
         Long nowTime=nowDate.getTime();    
         Long oldTime=date.getTime();    
         Long time=nowTime-oldTime;    
        if(time>60*60*1000){    
            if(day==0){    
                return new SimpleDateFormat("HH:mm:ss").format(date);    
             }else if(day==1){    
                return "昨天"+new SimpleDateFormat("HH:mm:ss").format(date);    
             }else if(day==2){    
                return "前天"+new SimpleDateFormat("HH:mm:ss").format(date);    
             }else{    
                return new SimpleDateFormat("yyyy-MM-dd").format(date);    
             }    
         }else if(time<60*1000){    
            return "刚刚";    
         }else{    
            return (long)time/(60*1000)+"分钟前";    
         }    
     }   

 

这段代码很简单,相信大家一看便懂了。
下面是距离当前时间天数的方法:

public class Times extends Component{    
    private String name;    
        
    public String getName() {    
        return name;    
     }    
   
    public void setName(String name) {    
        this.name = name;    
     }    
    public Times(ValueStack arg0) {       
        super(arg0);       
     }       
    @Override      
        public boolean start(Writer writer) {    
            boolean result = super.start(writer);    
            try {    
                 java.util.Date date = (java.util.Date) findValue(name);    
                 String str=DataTime.getDisplayTime(date);    
                 writer.write(str);    
             } catch (IOException ex) {    
                 Logger.getLogger(Pages.class.getName()).log(Level.SEVERE, null, ex);    
             }    
            return result;    
         }       
}   

 

这里是写一个方法调用这个算法返回一个值

public class TimeTag extends ComponentTagSupport{    
    private String name;    
   
    public void setName(String name) {    
        this.name = name;    
     }    
   
    @Override      
    public Component getBean(ValueStack arg0, HttpServletRequest arg1, HttpServletResponse arg2) {       
        return new Times(arg0);       
     }       
      
    //获得参数       
    protected void populateParams() {       
        super.populateParams();       
         Times pages = (Times)component;       
         pages.setName(name);    
             
     }       
}   

 

这里继承ComponentTagSupport类是为了获得标签中的属性值,并包装成Component对象。继承Component类是为了从Struts2中的ValueStack中获得相对应的值。
第二步:建立smallfish.tld

<?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>2.2.3</tlib-version>    
     <jsp-version>1.2</jsp-version>    
     <short-name>smallfish</short-name>    
     <uri>/jzy</uri>    
     <display-name>"smallfish Tags"</display-name>         
            <tag>    
             <name>times</name>    
             <tag-class>com.common.tag.TimeTag</tag-class>    
             <body-content>empty</body-content>    
             <attribute>    
                 <name>name</name>    
                 <required>true</required>    
                 <rtexprvalue>true</rtexprvalue>    
             </attribute>    
         </tag>    
</taglib>

   

分享到:
评论

相关推荐

    struts2.0标签使用源码

    了解Struts2.0标签的源码有助于我们更好地优化代码,例如,自定义标签以满足特定需求,或者在处理复杂数据结构时利用OGNL的灵活性。此外,还可以学习如何配置Struts2拦截器,结合标签库实现更强大的功能,如表单验证...

    Struts 2.0 UI标签实例程序

    - 通过主题和模板,可以自定义标签的外观,满足不同设计需求。 - 错误和验证可以通过Struts 2的内置机制处理,如使用`&lt;s:fielderror&gt;`标签显示错误信息。 在实际项目中,UI标签的使用极大地降低了页面开发的复杂性...

    struts2.0 教程(标签,XML配置,入门例子,帮助手册)

    总的来说,这个教程涵盖了Struts2.0的基础知识,从最基础的XML配置到复杂的Action链和自定义标签使用,都是学习和掌握Struts2.0必不可少的内容。通过深入学习和实践,你将能够熟练地运用Struts2.0构建高效、可维护的...

    struts 2.0 自定义类型转换器 注册类型转换器 入门实例 简单实例

    Struts 2.0 是一个基于MVC设计模式的Java Web框架,它极大地简化了开发过程,特别是处理用户输入和数据转换。在Struts 2中,类型转换器(Type Converter)扮演着至关重要的角色,它负责将HTTP请求中的字符串数据转换...

    struts 2.0 常用标签

    Struts 2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web...在"struts2.0常用标签.txt"文件中,你可能会找到更多关于这些标签的详细使用示例和解释,这将有助于进一步学习和掌握Struts 2.0 标签的用法。

    Struts_2.0从入门到精通

    Struts2.0提供了丰富的标签库,分为非UI标签和UI标签两大类。非UI标签主要用于控制流程和数据处理,例如用于URL重写,用于输出变量值。而UI标签则专注于页面元素的展示,如、等,它们能自动绑定模型属性,极大地简化...

    Struts2.0 入门教程+帮助手册+权威指南+配置文档+标签库+增删改查代码等.rar

    这个压缩包文件提供了丰富的资源,包括入门教程、帮助手册、权威指南、配置文档以及标签库和实际操作的增删改查代码,为学习和掌握Struts2.0提供了全面的支持。 首先,`Struts2.0中文教程.chm`和`Struts2入门2.pdf`...

    Struts2.0学习系列 以及 Struts2.0安装包

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0学习系列"旨在帮助初学者及进阶者深入理解并...

    struts2.0标签详解

    Struts2.0是一个强大的Java Web开发框架,它极大地简化了MVC(Model-View-Controller)应用的构建。在Struts2中,标签库是其核心特性之一,提供了丰富的标签来帮助开发者更加便捷地创建动态网页。本文将深入探讨...

    struts2.0 经典书籍 源码 标签学习合集

    2. **自定义标签**:如何创建和使用自定义标签,以满足特定需求。 3. **标签的属性和用法**:每个标签都有其特定的属性和用法,熟悉这些可以帮助你更有效地构建视图。 通过这些资源,无论是初学者还是有经验的...

    struts2.0英文文档

    4. **强大的标签库**:Struts2.0 提供了丰富的标签库支持,如 `&lt;s:textfield&gt;`、`&lt;s:submit&gt;` 等,这些标签可以帮助开发者快速构建用户界面。 5. **国际化支持**:Struts2.0 内置了国际化(I18N)支持,可以通过配置...

    struts2.0的标签学习资料

    以上只是Struts2.0标签库中的一部分,实际上还有更多标签如表单验证、标签自定义等,它们共同构成了强大的视图层支持,使得Struts2.0在Java Web开发中被广泛应用。掌握这些标签的使用,将极大提高开发效率和代码质量...

    struts2.0标签教程详解资料

    六、自定义标签 如果内置的标签不能满足需求,开发者还可以创建自己的标签。这需要编写对应的Java类,并配置在struts.xml文件中,从而扩展Struts2的功能。 七、最佳实践 1. 在使用标签时,尽量避免直接操作HTML,...

    struts2.0开发的都市供求信息系统

    Struts2.0是一款强大的Java Web开发框架,它在MVC设计模式的基础上提供了一套完整的解决方案,用于构建可维护、可扩展的企业级应用程序。在这个"都市供求信息系统"项目中,我们能够深入理解并实践Struts2.0的核心...

    Struts2.0 入门学习资料

    4. 自定义标签库:Struts2.0提供了一套强大的自定义JSP标签,简化视图层的开发,如、等。 5. 国际化与本地化:Struts2.0内置了对多语言的支持,开发者可以通过资源文件轻松实现应用的国际化。 三、Struts2.0的配置...

    struts2.0中文教程

    其次,Struts2.0提供了强大的拦截器(Interceptor)机制,这是一系列预定义的或自定义的处理步骤,可以在Action执行前后进行干预,如日志记录、权限检查等。开发者可以通过自定义拦截器来实现特定的需求,增强框架的...

    Struts 2.0 in Action

    第三部分“Building the View: Tags and Results”专注于如何利用Struts 2.0提供的标签库和结果处理机制来构建动态视图页面。 - **标签库**:Struts 2.0包含了一套丰富的标签库,这些标签不仅提供了HTML元素的快速...

    Struts2.0培训课件

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0培训课件"包含了深入学习和理解Struts2.0框架...

    学习Struts 2.0系列

    9. **Struts 2.0标签库**:熟悉各种内置的JSP标签,如s:textfield、s:submit等,以及如何使用它们来简化视图层开发。 10. **异常处理**:学习如何配置全局和局部的异常处理策略,以优雅地处理运行时错误。 11. **...

Global site tag (gtag.js) - Google Analytics