Tiles学习指南
大家好,我是IT修真院北京分院第12期的java学员,一枚正直纯洁善良的程序员(帅不过老大),今天给大家分享一下,修真院官网Java任务4中的内容:Tiles框架。
Tiles框架具有如下特性:
1.创建可重用的模板
2.动态构建和装载页面
3.定义可重用的Tiles组件
4.支持国际化。
我们会发现很多网站只有中间是会变动的,其他都不会变动
例:
在这次页面跳转中,只有body的内容改变了,但没有tiles时,为此我们需要写2个界面。即使多代码可以重用,直接复制黏贴,但是两个页面还好,但是如果有成千个网页呢?如果你做完后老板不满意要求你在页面的头部中加图片呢?这就是工程量巨大的工作。但是tiles框架帮我们解决了该问题,下面我将向大家分享我的学习心得。
要运用框架我们首先要下载tiles的jar包。在pom.xml中引入下面的代码:
<!-- https://mvnrepository.com/artifact/org.apache.tiles/tiles-extras -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>3.0.8</version>
</dependency>
接着审视我们的网页,给网页分层,提取出可复用部分
然后配置tiles的配置文件:
这里由于网页风格有两种,所以这里我设置了2个模板。
这里的< derinition > 标签中的name属性显而易懂是名字,template代表它是一个模板,后面放的是模板文件路径。 extends 继承,代表着我们这个页面继承了哪个模板文件。 < put-attribute > 是向模板文件中注入具体的jsp页面。
上面我们配置了tiles配置文件,设定了模板jsp,那么模板文件jsp如何接收各种jsp页面组件并组装成页面呢?
让我们看一下模板jsp页面配置。
配完模板jsp页面后还有最后一步,在springmvc中我们使用InternalResourceViewResolver直接返回一整个jsp页面,tiles组件化的页面怎么返回呢?tiles为我们提供了自己的视图解析器:
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver">
<!--优先启动tiles的视图解析器-->
<property name="order" value="1"/>
</bean>
<!--tiles的路径配置-->
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions" value="/WEB-INF/tiles.xml"/>
</bean>
这样我们只需在controller层如return我们tiles配置文件中的具体页面名字即可。
接下来由于我的惨痛经历,我为大家分享下静态资源的应用问题?
WEB-INF下的文件外部无法访问所以我们要在webapp文件夹下建立静态资源文件夹(这里我建的是static,名字随意)
由于我们的springmvc的前置控制器设置如下
他默认拦截所有请求交给controller层导致无法访问静态资源,所以我们要在springmvc的配置文件中做如下配置:
由于 < mvc:default-servlet-handler > 会默认把所有的静态资源请求发给默认的servlet去处理,所以mvc:resource一定要放在他上面。(血与泪的教训,一直以为自己的静态资源访问路径不对,换了无数个位置,重配了无数次路径,最后居然只是调换了下mvc的配置顺序就见证了奇迹。自闭中。。。。。。。。。。。。。)
Tiles框架温馨提示:
程序运行最怕的就是jar包冲突,而且tiles的jar包跟slf4j的冲突真的很明显;这个自己使用exclusion排除吧;
今天的分享就到这了,希望大家多多指正,互相学习~
技能树.IT修真院
“我们相信人人都可以成为工程师,从现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫。”
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄一对一可见指导。
最重要的一点,老大最帅,没有之一,不接受反驳!!!