发表于: 2018-04-08 23:53:58

1 663


今天完成的任务:tiles布局初步完成

首先理解一下前端写的HTML的布局,里面引用了css样式和js文件,所以在做框架的时候要理清每个文件所在的位置:

我选择了把jsp页面放在WEB-INF中,这样可以阻止客户的直接访问,使得jsp页面必须通过控制器跳转渲染才能被访问,以免客户看到各种乱码和错误(直接访问是指直接在地址中输入xxx.jsp就可以访问到项目中不在WEB-INF文件下的jsp文件,WEB-INF是一个受保护的包)。

下面做html文件的分离工作:

提取出三个页面共有的头部和尾部,提取出3个body部分,应用tiles布局的思想:

<definition name="*" extends="jnshu">
<put-attribute name="header" value="/WEB-INF/jsp/task4/header.jsp" />
<put-attribute name="body" value="/WEB-INF/jsp/task4/{1}.jsp" />
<put-attribute name="footer" value="/WEB-INF/jsp/task4/footer.jsp" />
</definition>

这里*和{1}的含义就是返回什么name,就提取name.jsp文件作为body然后和头部尾部组合渲染出页面。

将html页面改成动态jsp,显示数据库中的在学学生和毕业学生,controller层:

@RequestMapping(value = "/home",method = RequestMethod.GET)
public String home(Model model){
int total = studentService.gettotal();
int gtotal = graduateStudentService.gettotal();
model.addAttribute("gtotal",gtotal);
model.addAttribute("total",total);
return "home";
}

jsp页面中:

${total}

通过${}传递参数,将控制器得到的参数传给前端,以达到访问/home路径刷新页面是得到学生总数。

效果如下:

解决了前天留下的脚本问题:

之前遇到的问题的原因是,如果想写成#! /bin/sh 就要直接把命令行的句子原封不动的写进去(不要随便换行 加空格),至于携程#!/bin/awk -f的awk脚本的方法我还没研究明白,不过sh脚本是可以正常运行了:


关于时间的自定义标签:

(1)为什么要做自定义标签?

想要在jsp页面完成一些功能就需要使用大量的java语句,而我们出于代码的复用性和解耦合的角度就要减少这些java语句在jsp页面的出现,所以我们可以使用自定义标签来完成这个工作。

(2)为什么显示时间需要自定义标签?

数据库中存放的是bigint类型的时间数据,想输出到jsp页面显示可读的时间类型,有一个formatDate可以转换,但是只能将String类型转换成date类型,但是不能将long类型转换为date类型,如果想把数据库中的bigint类型转换为date类型则需要自己设计标签

(3)使用流程

写一个类继承TagSupport,实现doStartTag()方法(今天代码写的磕磕绊绊的,就不发出来了,明天写完)

编写tld文件(存放位置在WEB-INF/下)

<?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>util.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/tld/datetag.tld</taglib-location>
</taglib>
</jsp-config>

在jsp页面中使用标签(没做完)


重写了一部分代码,改了一些地方的大小写规范,尽量按照命名规范来,将resources下的dao层xml配置文件挪回了dao包下,方便spring文件检索。


今天的收获:

学会了tiles布局,学习了自定义标签的写法及应用,在webapp中引用文件的时候要注意路径,jsp页面中引用文件可以这样引用:

href="<%=request.getContextPath()%>/css/task8-1.css"

重新理解了createtime和updatetime,从今天开始重新看任务一的课后思考,争取每个问题都做到思考的广度和深度,多学习,少休息。

今天遇到的问题:

路径问题(已解决),脚本问题(已解决),重新做之前的深度思考。

明天的计划:

写完时间标签 做任务四的思考。



返回列表 返回列表
评论

    分享到