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

在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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值