jstl中关于fmt:parseDate和fmt:formatDate的综合使用

参考文档:http://www.ibm.com/developerworks/cn/java/j-jstl0415/

   我们知道,java.text.SimpleDateFormate给我们提供了两个非常有用的方法,parse(String)可将字符串转换成日期类型,format(Date)可将日期类型转换为相应格式的时间字符串类型。这里就不贴代码了。

           那么,在jsp页面也是可以完成上面的两个转化。现在有一个问题,我要从数据库读出一条数据,格式可为“2014-07-10/2014-10-17”,需求是将这样的字符串改写成如:“2014年7月~2014年10月”的格式。如何用jstl的标签来解决这个简单的问题呢?

       同样,jstl给我们提供了<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>这样的一个标签库,其中fmt:parseDate是把字符串解析为日期,fmt:formatDate把日期解析为字符串。似乎这样就可以简单的解决问题了,可是如果只是盲目的从网上copy代码,如,copy代码为:,测试一下,发现如下错误:

javax.servlet.ServletException: javax.servlet.jsp.JspException: In <parseDate>, value attribute can not be parsed: "2014-10-10
问题出在哪里?

直接改为>可以正常输出,但这样解析出来的时间格式却又不是正确的,fmt:parseDate还有一个属性为var这样可以生成一个临时的变量,如果要输入指定的格式,就可以结合fmt:formatDate标签将想要的结果正确输出出来,代码如下:


    	~
    	
    	

如果是嵌套在集合中的字符串,则写法如下:


    			
				    
				    
				    	
				    	
				    	
				    	~
				    	
				    	
				    
				    ${#expi.experienceUnit } 
				    ${#expi.position } 
				    ${#expi.specificExperience } 
				    ${#expi.experienceLevel } 
		   	 
    		

这里关键是临时变量的使用,对于大部分初学者来说,在页面使用临时变量的情况较少


你可能感兴趣的:(jstl)