发表于: 2018-02-02 20:07:16
3 612
那个tiles页面复用出了一点问题后面再来解决---->
写一个JSP的时间处理Tag把这个完成了----->再回来解决tiles这个问题
https://www.cnblogs.com/gmq-sh/p/5528989.html(参考文档)
开始在web.xml里面配置
<!--时间的配置-->
<jsp-config>
<taglib>
<taglib-uri>/tags</taglib-uri>
<taglib-location>/WEB-INF/datetag.tld</taglib-location>
</taglib>
</jsp-config>
在/WEB-INF/datetag.tld文件
<?xml version="1.0" encoding= "UTF-8"?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>date</short-name>
<tag>
<name>date</name>
<tag-class>com.fuwei.date.DateTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
com.fuwei.date.DateTag里面建立DateTag
package com.fuwei.date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DateTag extends TagSupport{
//定义一个的大数
private static final long serialVersionUID = 6464168398214506236L;
//定义一个值
private String value;
//定义一个方法
public int doStartTag() throws JspException {
//这部操作暂时没看懂。是一个强制类型转换?但是value本身就是个string啊。
String vv=""+value;
//将String类型转换为long类型
long time=Long.valueOf(vv);
//定义一个日期类型(getInstance单例模式创建)
Calendar calendar=Calendar.getInstance();
//setTimeInMillis方法从给定的long值设置日历的当前时间。
calendar.setTimeInMillis(time);
//SimpleDateFormat设置出一个时间格式
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s =dateFormat.format(calendar.getTime());
//定义一个"yyyy-MM-dd HH:mm:ss"格式的时间
try {
//继承JspException父类的方法。。在页面打印这个时间?
pageContext.getOut().write(s);
} catch (IOException e) {
e.printStackTrace();
}
//这是一个返回自己的方法。
return super.doStartTag();
}
public void setValue(String value) {
this.value = value;
}
}
Controller层的类型转换
在jsp页面配置
最上面引入
<%@ taglib uri="/tags" prefix="date"%>
不然没有显示
<hr>
<div style= "width:180px;height:20px;margin:0 auto;border:1px solid;">
<date:date value="${date}"/>
</div>
<hr>
运行查看时间
我接下来查一下为什么除以1000会出现在1970-01-18 21:32:39
http://blog.csdn.net/u013410747/article/details/51648191(参考文档)
不仅仅是Java,几乎所有的语言的时间都是从这一刻开始算起的. 原因:java起源于UNIX系统,而UNIX认为1970年1月1日0点是时间纪元
因为用32位来表示时间的最大间隔是1.6年,而最早出现的UNIX操作系统考虑到计算 机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始 时间),而java自然也遵循了这一约束。
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); Date date=new Date(); date.setTime(0); System.out.println(sdf.format(date)); 打印结果: 1970-01-01 08:00:00 000 这是因为我门在东八区,比格林威治0时区早8个小时导致的。
现在回来弄tiles的bug
我看是看配置的问题
就开始看XML配置文件
后面一直看他那个错误好像是XML或者jar包没有加载出来
后面终于发现是tiles.xml里面的配置问题
在controller里面返回的页面访问
访问的问题就是这个
今天完成的事情:写一个JSP的时间处理Tag和用Tiles来完成页面的复用配置的BUG解决啦,对tiles的熟悉更加明白了
明天的计划:完成在服务器的部署,和终结日报,还有深度思考的问题
4.写一篇Tiles的学习心得,放到日报里,转发到自己的自媒体上,记着末尾加上IT修真院的宣传。
今天的困难:就是在几天完成tiles的bug的时候,主要是GET那个访问的返回,以前一直都是jsp页面,tiles返回的是哪个jsp页面的代理类名里面这个就是一直访问不到资源的原因
评论