在Spring+hibernate的框架中,通过生日计算年龄比较麻烦,通过SQL计算年龄也可以实现,还是挺麻烦的,测试过几种方法后,还是在显示层,通过JSP的自定义标签实现比较简单。

1、创建标签的处理类(Tag Handler Class)

package com.kingmed.jusmartcare.health.service;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class FenDate {
public static String age(java.util.Date brithday ) throws Exception {
if (brithday==null){
return "无";
}
Calendar cal = Calendar.getInstance();
cal.setTime(brithday);
int year = cal.get(Calendar.YEAR);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(new java.util.Date());
int year2 = cal2.get(Calendar.YEAR);
year2=year2-year;
return String.valueOf(year2);
}
public static String ageex(String brithday ) throws Exception {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟
java.util.Date date=sdf.parse(brithday);
return age(date);
}
}  

2、创建标签库描述文件(Tag Library Descrptor File)

FenDate.tld

<?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/webjsptaglibrary_2_0.xsd"
version="2.0">
<description>functions library by feng, 2012-08-11</description>
<display-name>functions of feng</display-name>
<tlib-version>1.0</tlib-version>
<short-name>fen</short-name>
<uri>http://www.kingmed.com.cn</uri>
<function>
<name>age</name>
<function-class>com.kingmed.jusmartcare.health.service.FenDate</function-class>
<function-signature>java.lang.String age(java.util.Date)</function-signature>
</function>
<function>
<name>ageex</name>
<function-class>com.kingmed.jusmartcare.health.service.FenDate</function-class>
<function-signature>java.lang.String ageex(java.lang.String )</function-signature>
</function>
</taglib>

3:在JSP文件中引人标签库

test.jsp

<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="fen" uri="http://www.kingmed.com.cn"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<tr><p>${fen:age(null) }</p></tr>
<tr><p>${fen:ageex("2009-1-1") }</p></tr>
</body>
</html>

4:显示结果

4

JSP自定义标签 函数,实现生日计算年龄相关推荐

  1. JSP自定义标签开发入门

    一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...

  2. JSP自定义标签详解(1)

    JSP自定义标签 自定义JSP标签概述 自定义JSP标签就是程序员定义的一种JSP标签,这种标签把那些信息显示逻辑封装在一个单独的Java类中,通过一个XML文件来描述它的使用.当页面中需要使用类似的 ...

  3. JSP自定义标签学习笔记

    http://blog.csdn.net/liangbinny/article/details/6309893 本文是本人学习<JavaWeb学习>书籍所记下的学习笔记 一.概述 JSP ...

  4. jsp自定义标签(taglib)编写的原理和实现

    jsp自定义标签(taglib)编写的原理和实现 转:http://www.javaeye.com/topic/157737 个tag就是一个普通的java类,它惟一特别之处是它必须继承TagSupp ...

  5. 浅谈JSP自定义标签实现过程

    (一) 没有正文的JSP自定义标签实现 (1):定义JSP自定义标签处理类 import java.io.IOException; import java.util.Date; import java ...

  6. 【转载】Sqlserver根据生日计算年龄

    在Sqlserver中,可以根据存储的出生年月字段计算出该用户的当前年龄信息,主要使用到DateDiff函数来实现.DateDiff函数的格式为DATEDIFF(datepart,startdate, ...

  7. java jsp 自定义标签_JSP自定义标签

    在本章中,我们将讨论JSP中的自定义标签.自定义标签是用户定义的JSP语言元素.当包含自定义标签的JSP页面被转换成一个servlet时,标签被转换为一个名为标签处理程序的对象的操作. 然后,Web容 ...

  8. jsp自定义标签学习

    简单的说明: 1,说明---jsp自定义标签: HelloWorld:jsp自定义标签的使用流程: QueryTag:带属性标签的定义以及连接数据库使用: IteratorTag:带标签体的标签定义以 ...

  9. 如何使用jsp自定义标签 JspTag 使用入门

    java开发中,sturts标签和c标签就是我们常用的两种标签,本文主要教大家如何定义自己的标签,已达到代码整合,公共化的目的.通过jsp自定义标签,可以将一个元素,或者一个表格,一个div甚至整个页 ...

最新文章

  1. html5画布可以p图,HTML5图像适合发布在画布上
  2. python 字符串去重从小到大排列_python 序列(字符串、字符串、元组、集合、字典)...
  3. 24个很酷的 CSS3 文本效果示例及教程
  4. linux 硬件抽象,Linux 内核硬件抽象
  5. 【VOC格式xml文件解析】——Python
  6. 第八十一期:Java性能优化:35个小细节,提升你的Java代码运行效率
  7. Linux chattr 与 lsattr命令
  8. 关于内置浏览器的问题
  9. 实习生使用微软雅黑致公司被起诉索赔千万?方正回应...
  10. 声网 Agora Share:从天到秒级效率提升,一切都为服务好 15 万+应用
  11. oracle列转行wm_concat,Oracle列转行函数wm_concat版本不兼容解决方案
  12. Python笔记(二)——python调用C/C++模块
  13. android picasso 圆形,Andorid开发之Picasso通过URL获取用户头像的圆形显示
  14. HTML5 — 知识篇总结《I》【入门知识】
  15. excel数据导入到 mysql 中
  16. BrightHouse存储引擎
  17. 微信小程序云函数发天气预报
  18. FlutterComponent最佳实践之沉浸式
  19. java图片变成黑白代码_转:Java对图片的处理---缩放图像、图像切割、图像类型转换、彩色转为黑白...
  20. 概率论知识回顾(十):二维连续随机变量分布函数和联合密度函数

热门文章

  1. gcc 删除elf_ELF文件格式解析器 原理 + 代码
  2. 为什么数组排序大写字母在前小写字母在后
  3. VSCode注册关联自定义类型文件
  4. ddr传输 pl ps_Vitis ZYNQ开发秘籍 PS 端任意控制 VGA 显示画面最终实现
  5. php ajax成功失败,php – 让$.ajax失败
  6. java压缩对象_Java 对象指针压缩
  7. tp3.2php开启事务,Thinkphp 3.2.3 开启调试模式
  8. c++提供的可有效分配对象空间的运算符是_Python 为什么不支持 i++ 自增语法,不提供 ++ 操作符?
  9. 六,搭建elasticsearch集群搭建
  10. 五十七、Servlet工程和Tomcat