发表于: 2017-11-16 11:08:39
3 916
今天完成的事
【用Tiles来完成页面的复用配置】
按t10和t11的布局可以将页面分为body,footer,header。(就是说没有mune。
配置之后。
tiles文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="10" template="/jsp/t10template.jsp">
<put-attribute name="title" value=""/>
<put-attribute name="header" value="/jsp/t10header.jsp" />
<put-attribute name="menu" value="" />
<put-attribute name="body" value="/jsp/t10body.jsp" />
<put-attribute name="footer" value="/jsp/t10footer.jsp" />
</definition>
<definition name="11" template="/jsp/t11template.jsp" >
<put-attribute name="title" value=""/>
<put-attribute name="header" value="/jsp/t11header.jsp" />
<put-attribute name="menu" value="" />
<put-attribute name="body" value="/jsp/t11body.jsp"/>
<put-attribute name="footer" value="/jsp/t11footer.jsp" />
</definition>
</tiles-definitions>
【写一个JSP的时间处理Tag】
参考了文档:http://blog.csdn.net/super712/article/details/43985043
写一个类继承TagSupport,实现doStartTag() 方法。
package com.xiuzhen.date;
import sun.awt.im.SimpleInputMethodWindow;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* Created by ${MIND-ZR} on 2017/11/16.
*/
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;
}
}
具体对这个类的理解都已经在图的注释上了。
编写tld文件,datetag.tld,放在/WEB-INF/tld目录下。
<?xml version="1.0" encoding= "UTF-8"?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<tag>
<name>date</name>
<tag-class>com.xiuzhen.date.DateTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
在web.xml中加入引用。
<jsp-config>
<taglib>
<taglib-uri>/tags</taglib-uri>
<taglib-location>/WEB-INF/datetag.tld</taglib-location>
</taglib>
</jsp-config>
测试一哈,在controller层加入一个当前时间。
然后在jsp页面body部分随便写个语句调用他。。。
<hr>
<div style= "width:180px;height:20px;margin:0 auto;border:1px solid;">
<date:date value="${date}"/>
</div>
<hr>
启动。拿到当前时间~
【部署到服务器】
布局全乱的,应该是css布局文件没有加载上来,在jsp文件用到CSS的地方添加当前路径。
这个坑我是踩过的
搞定。
看效果请点下面,在没有把服务器停掉之前应该都有效果页面。
http://47.95.7.57:8080/Task4-1.0-SNAPSHOT/index
收获
tiles的使用和配置
遇到的问题
【配置到服务器出现问题】
在服务器中使用Resin的时候,报错误信息。
但是用tomcat就没这个问题。
百度了一哈。
https://yq.aliyun.com/articles/1918这个文档基本解释的很清楚了。
各服务器静态资源默认 Servlet的名字是不一样的。
具体区别如下。
Tomcat, Jetty, JBoss, and GlassFish 默认 Servlet的名字 -- "default"
Google App Engine 默认 Servlet的名字 -- "_ah_default"
Resin 默认 Servlet的名字 -- "resin-file"
WebLogic 默认 Servlet的名字 -- "FileServlet"
WebSphere 默认 Servlet的名字 -- "SimpleFileServlet"
这也算容器之间的不同。
tiles配置有个问题啊。。。。
比如我关于body里面出现了错误报错信息是这样的。
。。。。。。。
这怎么去查找错误啊。。。
明天计划的事
开始任务5
评论