发表于: 2018-04-08 19:27:37
1 865
今天完成的事情:
1.三种方法转换时间类型
(1)通过java代码实现;
在前面日报中已经写过,通过写一个时间转换的POJO,再写2个方法进行转换。今天和师兄指出这里可以通过另外一种方法实现,明天尝试。
(2)通过JSP标签格式化
<jsp:useBean id="datevalue" class="java.util.Date"/>
<%--2.通过<jsp:setProperty />为Date实例设置long型 time属性值--%>
<jsp:setProperty name="datevalue" property="time" value="${rs.update_at}"/>
<%--通过<fmt:formatDate />格式化Date实例--%>
<fmt:formatDate value="${datevalue}" pattern="yyy-MM-dd"/>
(3)自定义tag标签;
package com.POJO;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* @Author: Jaime
* @Date: 2018/4/8 21:30
* @Description: *
*/
public class DateTag extends TagSupport{
private static final long serialVersionUID = 6464168398214506236L;
private String value;
@Override
public int doStartTag() throws JspException {
String vv = ""+value ;
long time = Long.valueOf(vv);
//getInstance()使用默认时区和语言环境获得一个日历。
Calendar c = Calendar. getInstance();
//setTimeInMillis()用给定的 long 值设置此 Calendar 的当前时间值。
c.setTimeInMillis(time);
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" );
String s = dateformat.format(c.getTime());
try {
//涉及到Out对象。这里运用pageContext对象获取out对象,写入s;
pageContext.getOut().write(s);
} catch (IOException e) {
e.printStackTrace();}
//这里返回的不太懂,返回的int,但是是什么呢?
return super.doStartTag();
}
public void setValue(String value) {
this.value = value;
}
}
datetag.tld文件
<?xml version="1.0" encoding= "UTF-8"?>
<taglib><short-name>dt</short-name>
//和网上例子的不同,这里设置了uri,不需要在web.xml中进行设置
<uri>/tags</uri>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<tag>
<name>date</name>
<tag-class>com.POJO.DateTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
后面2种方法的jsp页面。
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib uri="/tags" prefix="date"%>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/3/28
Time: 22:42
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
//方法3<date:date value="${rs.create_at}"/><br>
//方法2
<jsp:useBean id="datevalue" class="java.util.Date"/>
<jsp:setProperty name="datevalue" property="time" value="${rs.update_at}"/>
<fmt:formatDate value="${datevalue}" pattern="yyyy-MM-dd HH:mm:ss"/>
<center>查询结果</center>
<table width="60%" border="1" cellpadding="2" cellspacing="0" align="center">
<tr>
<th>ID</th>
<th>NAME</th>
<th>QQ</th>
<th>onlineID</th>
<th>time_of_enrollment</th>
<th>graduate_institutions</th>
<th>report_link</th>
<th>hearfrom</th>
<th> </th>
<th> </th>
</tr>
<tr>
<td>${rs.ID}</td>
<td>${rs.name }</td>
<td>${rs.QQ}</td>
<td>${rs.onlineID}</td>
<td>${rs.time_of_enrollment}</td>
<td>${rs.graduate_institutions}</td>
<td>${rs.report_link}</td>
<td>${rs.hearfrom}</td>
<td><form action="${pageContext.request.contextPath}/student/${student.ID}" method="post">
<input type="submit" value="更新">
</form> </td>
<td><form action="${pageContext.request.contextPath}/student/${student.ID}" method="post">
<input type="hidden" name="_method" value="DELETE">
<input type="submit" value="删除">
</form></td>
</tr>
</table><br>
<br>
<a href="/index.jsp">返回主页</a>
</body>
</html>
2.由于学习自定义标签,学了out对象和pagecontext对象
将PageContext对象和ApplicationContext对象结合在一起理解比较形象。
当我们在使用Spring的时候,如果我们需要实例化某个对象,我们都从上下文中拿。
这里PageContext也相似,在jsp中有九个内置对象,PageContext是其中一个,其他8个可以看做Bean,当我们要使用其他8个时,我们可以通过PageContext来获取。
3.上传项目到服务器。
明天计划的事情:(一定要写非常细致的内容)
验证上面三种方法的优缺点,第一种方法已经验证可行,但是对需要理清楚逻辑再写。
遇到的问题:(遇到什么困难,怎么解决的)
----
收获:(通过今天的学习,学到了什么知识)
jsp的内置对象Out和PageContext的详细学习。
自定义tag标签的学习。
评论