发表于: 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认为1970110点是时间纪元

因为用32位来表示时间的最大间隔是1.6年,而最早出现的UNIX操作系统考虑到计算 机产生的年代和应用的时限综合取了197011日作为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个小时导致的

 

 

现在回来弄tilesbug

我看是看配置的问题

就开始看XML配置文件

后面一直看他那个错误好像是XML或者jar包没有加载出来

后面终于发现是tiles.xml里面的配置问题

controller里面返回的页面访问

访问的问题就是这个

今天完成的事情:写一个JSP的时间处理Tag和用Tiles来完成页面的复用配置的BUG解决啦,tiles的熟悉更加明白了

 

明天的计划:完成在服务器的部署,和终结日报,还有深度思考的问题

4.写一篇Tiles的学习心得,放到日报里,转发到自己的自媒体上,记着末尾加上IT修真院的宣传。

 

今天的困难:就是在几天完成tilesbug的时候,主要是GET那个访问的返回,以前一直都是jsp页面,tiles返回的是哪个jsp页面的代理类名里面这个就是一直访问不到资源的原因

 



返回列表 返回列表
评论

    分享到