IT修真院·小课堂丨互联网职业小课堂在线学习平台

课堂课题:

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)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

Tiles有什么用处,为什么要用Tiles,如果不使用Tiles,可以实现公共部分的复用吗?    

辅导师兄 [郑州|结业弟子]UI-王贝贝


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都这么久了才改,你说有多少公司愿意用一个不成熟的技术去做项目呢。所以很久之前都是前后端不分离的。我现在导依赖的时候,都是用最新的,正常项目里,用的都是最稳定的。都是为了钱啊!




评论

请您登录 后进行评论