发表于: 2017-05-27 23:16:08

1 1196


今天完成的事情:

1、完成2个页面(css task10和task11)的动态读取数据和使用tiles框架进行页面复用。

2、看qq群视频直播上课。

以下语句的执行区别:

select count(*) from 日报表 where userId=?;  只返回一个值

select 日报Id from 日报表 where userId=? 返回一大串数据


3、编写jsp自定义标签————根据传入的时间格式把Long变成对应的格式。

第一步:编写类继承TagSupport。

//根据传入的时间格式把Long变成对应的格式。
public class MyDateTag extends TagSupport {

private String value;

   private String datePattern;

   public String getValue() {
return value;
   }

public void setValue(String value) {
this.value = value;
   }

public String getDatePattern() {
return datePattern;
   }

public void setDatePattern(String datePattern) {
this.datePattern = datePattern;
   }

public int doStartTag() throws JspException{

String vv = ""+value;
       try {
Long time = Long.valueOf(vv.trim());
           Calendar c = Calendar.getInstance();
           c.setTimeInMillis(time);
           SimpleDateFormat sdf = new SimpleDateFormat(datePattern);
           String format = sdf.format(c.getTime());
           pageContext.getOut().write(format);
       }catch (Exception e){
e.printStackTrace();
       }
return super.doStartTag();
   }
}

第二步:在webapp下新建tld/datetag.tld 文件,格式是xml

<?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.jn.utils.MyDateTag</tag-class>
       <body-content>JSP</body-content>
       <attribute>
           <name>value</name>
           <required>true</required>
           <rtexprvalue>true</rtexprvalue>
       </attribute>
       <attribute>
           <name>datePattern</name>
           <required>true</required>
           <rtexprvalue>true</rtexprvalue>
       </attribute>
   </tag>
</taglib>

第三步:在 web.xml 中注册该标签

<jsp-config>
   <taglib>
       <taglib-uri>/tags</taglib-uri>
       <taglib-location>/WEB-INF/tld/datetag.tld</taglib-location>
   </taglib>
</jsp-config>

第四步:在jsp页面测试一下

yyyy-MM-dd

<date:date value ="${stu.createAt}" datePattern="yyyy-MM-dd" />

yyyy-MM-dd hh:mm:ss

<date:date value ="${stu.createAt}datePattern="yyyy-MM-dd hh:mm:ss" />

4、部署到云服务器上。

可以用一下自动部署脚本。

5、完成tiles学习笔记,发布到了微信上。

明天的计划:

1、任务5

遇到的问题

 1、日期转换:

Caused by: java.sql.SQLException: Bad format for Timestamp '1495352739785' in column 4.

原因:我删除了对 createAt 和 updateAt 两字段的 MyDateTypeHandler。

 Student类的createAt和updateAt是java.util.Date类型,而他们在数据库对应字段的类型是BigInt。原本我有编写一个 MyDateTypeHandler 用于将BigInt的数据在取出时,转为java.util.date类型,取消掉这个 MyDateTypeHandler 后,当然在数据转换时会发生报错。

解决办法:

createAt 和 updateAt改为Long类型,之后通过自定义标签将Long转为自己需要的时间格式。

2、当数据库字段名发生变动时。修改对应的类名和mapper文件需要多少时间?

收获:

 待续



返回列表 返回列表
评论

    分享到