为什么要使用tiles框架?

 

1.背景介绍

 

什么是Tiles框架

 Tiles框架就是一种页面复用体系,我们在设计前端jsp页面时,可能会有很多页面重复的地方,在每个页面上都写上相同的代码块,极大的降低了效率,为了解决代码不可复用的问题,Tiles框架应运而生。

2.知识剖析

在Tiles中,模板是页面的布局部分,每个页面都是由模板文件和碎片文件来组合生成的。
经典布局的页面结构包括:Header,Menu,Body,Footer
head页面头部:存放一个运用的公共信息:logo等,如果是网站可能是最上面的一块。
 menu页面菜单:放置一个运用中需要使用的菜单,或者在每一个页面都使用的连接。
body页面主题内容:每个页面相对独立的内容。
footer页面尾部:如版权信息等。

3.常见问题

1).如何使用Tiles框架

万个啊,又得请一百个好基友帮忙了!要是老板后面又要在网站顶端加一只唱歌的小鸟、在网站右边加一个工具栏…估计你的好基友要用砖头来砸你了。

那有没有一种方法,可以不用请一百个好基友帮忙,就可以在十分钟之内完成老板交给你的任务?也许你会觉得这简直是胡说八道,在十分钟内改完10万个JSP页面就是一种疯狂的想法。也许这是对的,就是一个疯狂的想法,不清楚Tiles的设计者当初也是否受到过这种老板的虐待,所以才设计出了这样一个疯狂的产品—— Tiles 。

没错,Tiles就是为你遇到的这种需求服务的。一旦你在网站系统中使用了Tiles技术,若老板让你删除10万个页面所引用的一个JSP,如果你的速度快的话,你可以在10秒钟之内解决。那要想再让这10万个页面去引用一个JSP呢?也是一样的操作,非常简单。
 

2).Tiles框架是否支持el表达式,要怎么用?

就是jsp页面添加

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles-extras" prefix="tilesx" %>%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles-extras" prefix="tilesx" %>

4.解决方案

将Tiles整合进Spring mvc,
 在controller里不能返回jsp页面,要返回逻辑视图名
可以用el表达式
5.编码实战
6.扩展思考
1.jsp页面支持嵌套吗?
支持,但是复用性很差,特别是一些相对复杂的页面中,嵌套的体验非常差,这才是tiles推出的重要原因


2.tiles和jsp include的区别是什么
(1)include指令


          include指令告诉容器:复制被包含文件汇总的所有内容,再把它粘贴到这个文件中。


<%@ include file="Header.jsp"%>


(2)include标准动作


<jsp:include page="Header.jsp"/>

 

(3)采用JSTL

<c:import url="http://www.sina.com/index.html">

注意:(1)include指令在转换时插入“Header.jsp”的源代码,而<jsp:include>标准动作在运行时插入“Header.jsp”的响应


          (2)采用前两种方式,只能包含当前web应用的界面,不过,<c:import>可以包含容器之外的内容。


          (3)注意路径问题,否则无法显示


jsp直接进入根目录   <link href="${pageContext.request.contextPath}/css/mystyle.css" rel="stylesheet" />
其中最大的区别就是都可以支持嵌套,但是如果需要修改页面的话tiles只需要将需要修改的一部分单独修改就好了,不影响其他整体的运行,但是include需要修改的话就需要将整个jsp页面进行修改调整,加大了工作量

3).EL表达式传值的实现过程

EL表达式
       EL表达式提供了JSP中简化表达式的方法,语法结构:${ expression} ,其采用“.”或者“[]”两种方式来存储数据,当表达式中存在除了字母或者数字之外的特殊符号时,必须用“[]”。
       其他EL内容包括操作符、隐式对象见度娘,现重点讲解此次我用到的两种隐式对象,
       一种: <%=request.getParameter("userName")%>       其等价于 ${param.userName};
       另一种:<%=request.getAttrbute(userList)%>                 其等价于 ${requestScope.userList} 。


       当${"userList"}时,搜寻顺序为:pageScope,requestScope,sessionScope,applicationScope。

 

二、传值

1. 页面之间传值(jsp跳转至另一个jsp)
     <a href="/test/toTest2.jsp?id='2'&name='test2'"></a>
     析:此处是通过URL进行参数传值的,toTest2.jsp为要提交的处理页面,“?”之后为要传递的参数和值,参数之间用“&”分割。在toTest2.jsp页面中,我们可以通过EL表达式的隐式对象取值,即:${param.id};${param.name}。

7.参考文献

1、tiles官方文档
https://tiles.apache.org/framework/tutorial/basic/concepts.html
2、tiles官方文档 El表达式:
                https://tiles.apache.org/framework/tutorial/basic/concepts.html
sic/concepts.html

8.更多讨论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值