课堂课题:
Tiles有什么用处,为什么要用Tiles,如果不使用Tiles,可以实现公共部分的复用吗?
关联任务:
任务五
直播时间:
2019-07-29 15:00:00
课堂内容:
视频链接:
PPT链接:
提交按钮:
小课堂内容格式
标题:
【修真院xx(职业)小课堂】课题名称
开场语:
大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX
(1)背景介绍:
背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。
(2)知识剖析:
讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。
(3)常见问题:
最少列出1个常见问题。
(4)解决方案:
写清楚常见问题的解决方案。
(5)编码实战:
尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。
(6)拓展思考:
知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。
(7)参考文献:
引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。
(8)更多讨论:
Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答
(9)鸣谢:
感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。
(10)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
1.背景介绍
在还是用jsp写页面的时候,页面里总有部分内容是重复的。那怎么解决这部分重复内容。让我们少写代码?
2.知识剖析
为什么要用tiles框架
在网站里总有一部分内容是不变的,这些部分我们可以用tiles框架把他们抽取出来。这样就可以少写很多代码了
3常见问题:
分析页面哪些内容可以使用tiles解决?
常见的是页头,菜单,页尾这
4.编码实战
怎么使用tiles呢?
总的来说是这几步
1添加依赖:tiles-extras
解决冲突:exclusion
2.tiles配置:视图、模板
3.创建模板:tiles:insertAttribute
4.控制模板
5.使用模版:tiles:insertDefinition
1.添加依赖,解决冲突
org.apache.tilestiles-extras3.0.5slf4j-apiorg.slf4jorg.springframeworkspring-web
2.tiles配置:视图、模板
<!--tiles视图配置-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"/>
</bean>
<!--tiles模板控制-->
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions" value="/pages/layout.xml"/>
</bean>
3.创建父模板 page.jsp
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title><tiles:getAsString name="title"/></title>
<link href="${pageContext.request.contextPath}/pages/bootstrap/bootstrap.css" rel="stylesheet">
</head>
<body>
<header>
<tiles:insertAttribute name="header"/>
<tiles:insertAttribute name="menu"/>
</header>
<tiles:insertAttribute name="body"/>
<tiles:insertAttribute name="footer"/>
</body>
</html>
4.控制模板。 layout.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<definition name="base" template="page.jsp">
<put-attribute name="title" value="" />
<put-attribute name="header" value="/pages/page/header.jsp" />
<put-attribute name="menu" value="/pages/page/menu.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/pages/page/footer.jsp" />
</definition>
<definition name="home_page" extends="base">
<put-attribute name="title" value="zhuye" />
<put-attribute name="body" value="/pages/page/home_body.jsp" />
</definition>
<definition name="job_page" extends="base">
<put-attribute name="title" value="job" />
<put-attribute name="body" value="/pages/page/job_body.jsp" />
</definition>
</tiles-definitions>
5.使用模板 home.jsp
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<tiles:insertDefinition name="home_page"/>
5.拓展思考:
现在新项目都不用jsp了,还有没有必要学tiles?
没有什么必要不必要,只有需要不需要,工作里,需要什么,就要用什么,不会就去学。
jsp在老的项目里还是有很多的。
6参考文献:
tiles官网
https://tiles.apache.org/
7更多讨论:
Q1:提问人:为什么要学这种前端的内容?
A1:回答:老项目前后端不分离,不就有这些东西了。
Q2: 提问人:这些旧的项目里的内容直接换成新的方法实现不行吗?
A2:回答:这是成本问题,毕竟很多公司是不愿意把旧的换成新的,成本太高了。
Q3: 提问人:为什么不一开始就用前后端分离的方式呢?
A3:回答:还是成本问题,一个项目用新技术是要踩很多坑的,修真院官网前端框架是用Angular1写的,现在都Angular7了才重构,最近才解决了一个站内信的BUG。这么明显的BUG都这么久了才改,你说有多少公司愿意用一个不成熟的技术去做项目呢。所以很久之前都是前后端不分离的。我现在导依赖的时候,都是用最新的,正常项目里,用的都是最稳定的。都是为了钱啊!