发表于: 2017-10-24 23:10:56
1 727
今天完成的事:
1.完成了使用Tiles框架来分离重复的组件
首先是配置
maven依赖
在WEB-INF下新建Tiles框架的xml配置文件,我命名为tiles.xml.
SpringMvc配置文件配置Tiles框架视图解析器
至此,配置完成。
下面讲讲Tiles做什么的,Tiles的工作流程是怎么样的,解析器和配置文件有什么作用,如何分离,如何重组。
什么是Tiles能做什么?
Tiles工作流程:
客户端发送一个请求到服务器,SpringMvc的前端控制器将所有请求拦截,并将请求分发给相应的controller,controller处理完毕,返回一个String类型的字符串给前端控制器,(比如返回home.page)前端控制器根据在SpringMvc中配置的视图解析器去找相应的jsp(视图解析器可有多个)。下面常规的jsp视图解析器无法找到相应的jsp
因此会通过Tiles的视图解析器去找:
Tiles的试图解析找到tiles.xml配置文件,查看是否有匹配home.page,如下图
发现home.page匹配*.page(*表示任意字符)。通过Tiles配置文件我们发现该组件继承自templet,拥有了header和footer,但是缺少body所有给它加上,body部分在/jsp/home.jsp中,我们使用{1}来获取*的实际内容就生成了body的路径。最后一个组装的jsp就形成了,会交给该jsp进行视图的渲染。到此就是整个流程。
解析器和配置文件的作用?
解析器是用来解析controller层返回的字符串找到对应的视图的(jsp),具体怎么找的上面流程已经说清楚了。
配置文件主要功能就是用来重组一个新的jsp的
如何分离:
这里推荐一个最简单的方法,先查看每个页面共有不变的部分,然后分离出来,放到一个jsp中(每个部分一个jsp文件)。然后分离完毕后,再来写每个页面变动的部分。然后配置一个基础的模板,基础模板里面就是用来填充在配置文件中配置的内容的。如下图
如何重组?
重做主要是继承一个基础模板(基础模板中定义了页面需要的整个结构,在配置文件中对于基础模板只填充了共有的部分),继承了以后拥有了共有的部分,还差当前网页需要的变动的部分,需要自己配置上去即可。如下图:
2.完成了自定义Tag标签来将时间格式化:
对于自定义标签我的理解就是Java和jsp互动的一种手段吧。
首先定义一个用于自定义格式的类,如下图:
创建tld配置文件,在WEB-INF下.
在web.xml下进行配置
在jsp配置头部并使用
3.提交了任务4,并在简书写了一遍对于Tiles框架使用的心得
任务4延期比较严重,主要还是自己这几天不在状态,无法集中精力学习。在师兄的codeReaview下发现自己还是有几点不足。
简书链接:http://www.jianshu.com/p/00170d25a609
明天计划的事情:
1.如下图
遇到的困难:
1.前端发送给后端的中文乱码,查看设置的编码都没问题。后来在web.xml中加了过滤器设置编码解决了
收获:
学会了使用Tiles和Tag。
深度思考:
什么是jsp?
jsp可以响应客户端的请求,能够写java代码动态生成html页面并响应客户端。
虽然说jsp可以写java代码但是并不推荐写业务逻辑或者Dao层的东西。我在书上和网上了解到是说jsp中不能写java代码,数据通过EL表达式来获取,逻辑控制通过c标签来控制即可。
jsp有几个内置对象?
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page
为什么要使用tiles框架?
因为tiles框架能够减少重复代码,提高组件的复用。
任务4总结
遇到的问题:
无
遇到的困惑:
无
遇到的疑难:
无
评论