struts的Tiles浅谈(其实就是学习笔记)

      我们在开发web的时候往往有很多页面具有相同或者类似的结构,他们共有导航栏,页眉,页脚等基础页面,如下图所示,一种较为普遍的页面布局格式。

 

 

 

 

       那我们每个页面都要写这么多的代码是不是会很麻烦呢?的确,会相当的麻烦。有人说我们只要用jcp的include标签来引入具有共同结构的页面会省去很多的麻烦,是这样的。但是如果我们要该掉这个框架呢?我们要把页脚变的高一些呢?是不是我们又得到所有页面当中去修改呢?是的,那样真的很麻烦。那我们又开始想了,有没有一种方法可以使得这个框架被抽出来呢?要修改框架的话只要修改一个就可以了。答案是肯定的。struts的tiles就可以完成这个功能。

       就像刚刚说的那样,我们需要有一个基础的框架。这里我们定义一个layout.jsp的页面

<%@ page language="java" pageEncoding="GB2312"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
	<html:base />

	<title>MyJsp.jsp</title>

	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

</head>

<body>
	<table style="width: 100%" border="1">
		<tr style="height: 80px">
			<td rowspan="3" style="width: 20%">
				<tiles:insert attribute="sidebar" />
			</td>
			<td><tiles:insert attribute="header" /></td>
		</tr>
		<tr style="height: 400px">
			<td>
				<tiles:insert attribute="content" />
			</td>
		</tr>
		<tr style="height: 40px">
			<td>
				<tiles:insert attribute="footer" />
			</td>
		</tr>
	</table>
</body>
</html:html>

 

      <tiles:insert attribute="sidebar" />大家都看到了这个标签,这就是传说中的tiles标签。说通俗点,该标签在该闻之留下了记号,这个记号就是sidebar(就像小狗喜欢在自己的地盘留下点气味一样)。这条叫tiles的小狗留下这个所谓的气味有什么用呢,这个吗,慢慢会过来和大家说的。

      我们再来看看这个布局,这个布局一共需要4个页面组成。我们把这四个页面定义成head.jsp;sidebar.jsp;content.jsp;footer.jsp。这四个页面的代码分别如下所示

<%@ page language="java" pageEncoding="GB2312"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  <head>
    <html:base />
    
    <title>页眉</title>

	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    这个标题页面
  </body>
</html:html>

      其余3个页面和该页面类似,我们就不写了。下面我们需要一个实实在在的页面,通过tiles这只小狗的气味把这4个页面给召唤过来,我们把这个页面取名为index.jsp吧。代码如下图所示:

<%@ page language="java" pageEncoding="GB2312"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  <head>
    <html:base />
    
    <title>主页</title>

	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
   <tiles:insert page="layout.jsp" flush="true" >
   <tiles:put name="header" value="head.jsp"/>
   <tiles:put name="sidebar" value="sidebar.jsp"/>
   <tiles:put name="content" value="content.jsp"/>
   <tiles:put name="footer" value="footer.jsp"/>
   </tiles:insert>
  </body>
</html:html>

 我们来看一看这个index的效果图

 

      看到效果了吧,我们来解释一些,这个index怎么通过layout和tiles小狗的气味把这些页面吸引过来的呢?来看看下面这段代码;

 

   <tiles:insert page="layout.jsp" flush="true" >
   <tiles:put name="header" value="head.jsp"/>
   <tiles:put name="sidebar" value="sidebar.jsp"/>
   <tiles:put name="content" value="content.jsp"/>
   <tiles:put name="footer" value="footer.jsp"/>
   </tiles:insert>

 

      大家应该可以看的很清楚index是利用tiles:insert的page属性来引入框架的,而且通过tiles:put的name属性和小狗的气味进行关联,将相应的页面给吸引过来的。如果这个时候添加一个新的index2页面,也很简单,只要重新些一个属于index2的content页面就可以了。然后利用tiles可以轻轻松松的完成操作。

       回到我们刚开始的话题,如果我们想把页脚调整的高一些,那么我们该怎么办呢?哈哈,你会发现这个很简单,只需要修改layout.jsp页面就可以了。不需要一个页面一个页面的修改。

       怎么样?很方便吧。其实tiles还有很多功能,我们只是说了一个小方面,下面的大家自己去看吧,有时间继续更新自己的博客。

 

PC网站实现微信扫码登录功能(二) 上篇我们介绍了怎么申请账号以及最后拿到appId和appSecret,如果有不清楚的可以看一下 PC网站实现微信扫码登录功能(一) 下面我就来说一下怎样在PC端怎么实现扫码登录功能。 一、进入官方文档网站 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 其实官网对过程描述的已经非常细致了。并且提供了两种扫码方式。一种是跳转二维码扫描页面,另一种是内嵌式二维码。大家可以 阅读详情

相关推荐

【Ablation Studies 理解】深度学习模型组件的对比实验/性能分析

Ablation Study 用于检测深度学习/机器学习模型中各部分构件对于整体的重要性。 可以理解为为:组件\tricks重要性测试、组件性能系统性分析、控制变量法、组件去除对比实验、性能敏感性测试、性能因子分析等 Ablation Studies 一些新颖的深度学习模型在论文中都会进行AblationStudy,这部分的主要意义在于系统性的移除模型中的各种组件/trick等因子或者是创新的...

TomRen 4588

Struts的tiles标签

下面开始讲解tiles标签,那么先引用2个问题,什么是tiles标签,tiles标签有什么用? 什么是tiles标签:tiles标签是建立在JSP的include的基础之上的一组标签。 tiles标签的作用:tiles标签为创建Web页面提供了一种模板机制,使网页的布局和网页的内容相分离。 实现tiles标签有两种方式,第一种tiles模板方式,第二种tiles组件方式。 tiles模板应...

x53611925的专栏 238

硬件笔记——HDMI接口

HDMI可以同时传输视频信号、音频信号和控制信号。其中高速信号有四组:从Data TX到Data RX有3组差分数据信号(TMDS_DATA0~2)和一组差分时钟信号(TMDS_CLOCK)。以及若干低速线。脚编号信号名称信号类型功能说明1热插拔检测连接状态检测。接收端通过此引脚向源端发送高电平信号,通知其已连接并可以开始读取EDID。2UTILITY车载用途悬空3TMDS数据通道2差分信号正极,用于传输视频像素、音频和数据包。4TMDS数据2屏蔽。

2501_94625908的博客 542

struts系列学习(tiles标签库一)

Tiles的使用(一) 综述        可用性是当今应用程序设的主要关注点,一致性(consistency)是可用性的主要因素。用户想要专注于手上的任务,却会被应用程序界面或屏幕的布局的小问题而担搁。保持动态web应用程序一致性是个很大挑战,因为一般都是手动对每个页面进行编码的。如今已经有许多针对静态页面的布局设计工具可以提供给设计人员,但基于JSP的很少。更糟的是,应用程序的外观往往是到

reallyafei的专栏 1400

【车辆动力学】专栏目录汇总

车辆动力学知识目录汇总

CrazyRabbit的博客 1713

【AI智能体】Claude Code +Superpowers 项目实战操作详解

Claude Code +Superpowers 项目实战操作详解

congge 4050

Struts中使用tiles

Struts中使用tiles                    Tiles框架                 简介:     最早的Tiles是组装在Struts1.1里面的,主要目的是为了将复数的jsp页面作为一个的页面的部分机能,然后用来组合成一个最终表示用页面用的,这样的话,便于对页面的各个机能的变更及维护。 Tiles使得struts在页面的处理方面多了一

QueenJade的收录 875

SpringBoot 整合 Drools:从环境搭建到复杂业务落地,精通规则引擎实战指南

本文介绍了Drools规则引擎的基础概念及其与SpringBoot的整合方法。首先概述了规则引擎的核心价值,包括业务规则解耦、可维护性提升等。重点讲解了Drools的核心组件(规则、事实、会话等)及其工作原理。随后详细说明了在SpringBoot项目中集成Drools的步骤,包括添加依赖、配置自动加载规则文件、创建KieContainer等关键配置类。文章还提供了完整的DRL规则文件示例和SpringBoot集成配置代码,为开发人员提供了从理论到实践的完整指导。通过这种方式,可以轻松实现业务规则与系统代码的

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1433

Struts 框架-----使用 Tiles

引言Struts 是有名的模型-视图-控制器(Model-View-Controller,MVC)框架方面的开放源码体现之一,它提供了一种便利的方式,可以用于将模块化应用程序清楚地分解成逻辑、表示和数据。Java 服务器页面(Java™Server Pages,JSP)在 MVC 框架中的作用通常是作为视图(View),它根据业务逻辑和数据生成动态的用户界面(UI)。在另一方面,Tiles

菜菜鸟_黑马的专栏 1249

基于通义千问2.5-7B-Instruct的技术深度解析

通义千问2.5-7B-Instruct是一个基于Transformer架构的大型语言模型,具有70亿参数。它通过自注意力机制和前馈神经网络处理输入序列,能够捕捉长距离依赖关系,适用于多种NLP任务。微调是指在预训练模型的基础上,使用特定任务的数据进行进一步训练,以使模型更好地适应特定任务。微调可以显著提高模型在特定任务上的性能。通义千问2.5-7B-Instruct是一个强大的语言模型,适用于多种NLP任务。通过深入理解其架构、微调方法和核心代码,可以更好地应用于实际场景。

zhangjiaofa的专栏 1569

面向高速Serdes的信号完整性优化:从封装 - 板级互连局限到封装内互连技术演进(一)

本文针对高速SerDes互连链路中的关键电磁效应展开研究:1)揭示了封装-主板互连结构在毫米波频段易激发谐振效应,导致53GHz传输陷波和阻抗偏移;2)提出基于本征模分析的谐振抑制方法,通过优化接地过孔排布使带宽突破95GHz;3)系统比较了方形/六边形BGA排布下23种差分对朝向的串扰特性,证实六边形阵列可将功率和串扰降低30%以上;4)论证了100GHz以上带宽需采用封装内互连架构,其较传统方案减少50%阻抗不连续节点。

小孟同学的博客 231

精通Struts:Tiles框架+Struts

第16章 Tiles框架 16.1 采用基本的JSP语句创建复合式网页... 2 16.2 采用JSP的include指令创建复合式网页... 6 16.3 采用<tiles:insert>标签创建复合式网页... 10 16.4 采用Tiles模板创建复合式网页... 12 16.5 采用Tiles模板和Tiles组件创建复合式网页... 14 16.5.1...

weixin_30882895的博客 376

全网最详细教程,手把书教你使用YOLOv10训练自己的数据集和推理(附YOLOv10网络结构图)

YOLOv10,由清华大学多媒体智能组只开发,是一款亳秒级实时端到端目标检测的开源模型。该模型在保持性能不变的情况下,与YOLOv9相比,延迟减少了46%,参数减少了25%,非常适合需要快速检测物体的应用,如实时视频分析、自动驾驶和智能医疗等领域。这些改进使得YOLOv10在实时物体检测领域达到了新的技术水平。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1万+

Struts中Tiles标签简介

Tiles简介 我发现在看到的这些关于Tiles的文档中,Struts文档中关于这方面的介绍对于初学者来说是最好的(个人认为),所以就把它译了过来,对于想了解这方面东西又不想看E文的同胞,可以参考一下。翻译的漏洞在所难免,希望大家对照原文看,出现的错误希望大家帮我指正,谢谢。                                                      

wallent的专栏 1715

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Struts 2 Tiles整合教程

Struts 2 Tiles整合例题这个例子将向我们展示如何使用Struts 2 tiles插件整合Struts 2和Tiles。在部署符里首先需要设置tiles定义文件。 org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG /WEB-INF/tiles.xml  然后设置tiles的监听者

kimlunarove的专栏 4514

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Jakarta Struts编程:使用Tiles,第二部分

 Jakarta Struts编程:使用Tiles,第二部分作者:Chuck Cavaness   陈正勇(zhengyongchen@21cn.com)译        本文是从《Programming Jakarta Struts》摘录的系列文章的第二部分,我们将学习如何安装和配置Tiles,并全面了解tiles。 安装和配置Tiles在您能够使用Tiles 框架之前,

命运是一只沦落在鸡窝里的鹰 1542

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

struts tiles实例

做了一个struts2 tiles的实例,为了防止以后忘掉,特在此写篇文章记下首先,先看一下总体结构图现在,我们按步骤来:1、所需的jar包,请将以下jar包导入 2、配置web.xml,设置监听等,内容如下:  xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.co

luckygll的专栏 1256

struts2与tiles整合(精简版)

一、搭建环境导入struts2与tiles有关的jar包1、struts2-blank下的所有jar包(struts2),struts2-tiles-plugin-2.1.8.1.jar(struts2整合tiles的插件)2、导入commons-digester-2.0.jar,commons-logging-1.0.4.jar,commons-beanutils-1.7.0.jar3、导入tiles-api-2.0.6.jar,tiles.core-2.0.6.jar,tiles-jsp-2.0.6.j

javaThinker_accp的专栏 858

在Struts中使用Tiles简明手册

如果要在Struts中使用tiles,首先要保证页面可以正确引入struts-tiles.tld,即。另外在struts-config.xml配置如下:                     在    //定义一个母板                                                    在classicLayout.jsp文件中如下:       Simple

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1564

Struts Tiles标签学习笔记 [ 原创 ]

Struts Tiles标签学习笔记:1,Tiles可以不使用配置文件,就比jsp:include强一点,差别就是能够传参数. 语法分两个部分:  模版里A.jsp   使用模版的页面B.jsp                2, Tiles 使用配制文件,文件里定义的叫"tiles组件" 简称"组件". 语法:  配置文件里tiles-defs.xml              这个com1组件

1839

Struts Tiles框架示例

Struts Tiles框架是一个布局框架,允许用户在所有网页上高效地维护页眉,页脚和菜单的标准外观。 下载此示例– Struts-Tile-Framework-Example.zip 瓷砖模板示例 这是一个创建图块模板的示例,以维护Struts中所有网页的页眉和页脚详细信息。 首先,请参阅此Struts磁贴框架关系。 1.获取Struts Tiles库 从St...

一名可爱的技术搬运工 303

Struts Tiles 标签库

  tiles:insert page="/layouts/commonLayout.jsp" flush="true" />     插入到JSP页面中:这个例子将tag中指定的页面插入到整个页面中来。page属性可以是指向任

1207

Struts Tiles 框架概述

       Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。允许先创建模板,然后在运行时动态地将内容插入到模板中。    在我们已知的创建符合式网页的方法中,包括:  采用基本的JSP语句创建符合式网页。这种方法会导致JSP代码的大量冗余,后果是重复编码、多处修改,大大增加开发和维护成本。  采用JSP的include指令创建符合式网页。和第一种方案相比

晨雨的专栏 3475

struts tiles应用指南

struts tiles应用指南Q:什么时候你需要tilesA:当你的系统中有太多的页面中含有相同的内容时,你就该考虑了tiles使用从零开始①为了使用tiles,请确保以下文件,位于你的/WEB-INF/lib目录下struts.jarcommons-digester.jarcommons-beanutils.jarcommons-collections.jarcommons-logging.j

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 940

Struts 和 Tiles 辅助基于组件的开发

“模型-视图-控制器(Model-View-Controller,MVC)”框架对于生成有组织的模块化应用程序(这些应用程序能够清晰地划分逻辑、样式和数据),是一种经证实的和方便的方法。在 Java 世界中,Struts 是最著名的也是最常被谈及的 MVC 的开放源码体现之一。致力于 Struts 的开发人员最近增强了该项目的核心功能,并改进了视图支持(合并了 Tiles 视图组件框架来加强对基于

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1590
上一篇: Beginning lucene
下一篇: Ditchnet jsp tabs tiglib的部署与使用
refactaar
博客等级 码龄17年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值