apache-tiles2.1.2 .

Apache Struts基础教程与实践 本文还有配套的精品资源,点击获取 简介:Apache Struts是一个开源的MVC框架,用于构建Java Web应用程序。教程包包括基础概念、配置和实践项目,涵盖Action类、配置文件、控制器、模型、视图、Tiles框架、Interceptor拦截器、ActionForm、国际化与本地化、异常处理等核心概念。通过 ***.txt 文件和 strut... 阅读详情
 

tiles用来定义界面布局,瓦片 的意思,可能认为一个网页是有好多瓦片搭建而成吧

去 http://tiles.apache.org/download.html 把他的源代码下载下来

unzip -x tiles-2.1.2-src.zip

cd tiles-2.1.2

mv src src2

mv src2/* .

rmdir src2

mvn compile dependency:sources # 等吧,要几分钟

mvn eclipse:configure-workspace -Declipse.workspace=web
mv web/* .

mvn eclipse:eclipse

这就算编译完了,而后用eclipse启动tiles-2.1.2中的workspace就好,不明白mvn也没什么,

也不太需要看 tiles 的代码,想知道mvn是怎么回事,看我以前的介绍

 

看了看 http://tiles.apache.org/framework/tutorial/index.html,感觉还好,

tiles 的功能就是进行页面布局,下面也就是看看tutorial这中如何定义 tiles-defs.xml

中的<definition>元素,还有如何使用tiles提供的<tiles:insertDefinition> 和

<tiles:insertTemplate>标签

 

 

tiles tutorial :

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Basic Usage/Creating Pages:
web.xml template.jsp tiles-defs.xml userpage.jsp中的<tiles:insertDefinition>标签

1. 在 web.xml 中注册 tiles初始化servlet
<servlet>
    <servlet-name>tiles</servlet-name>
    <servlet-class>org.apache.tiles.servlet.startup.TilesServlet</servlet-class>
    <init-param>
        <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
        </param-name>
        <param-value>/WEB-INF/tiles-defs.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>

2. 定义模板的布局 layout/classic.jsp
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<html>
  <head>
    <title><tiles:getAsString name="title"/></title>
  </head>
  <body>
        <table>
      <tr>
        <td colspan="2">
          <tiles:insertAttribute name="header" />
        </td>
      </tr>
      <tr>
        <td>
          <tiles:insertAttribute name="menu" />
        </td>
        <td>
          <tiles:insertAttribute name="body" />
        </td>
      </tr>
      <tr>
        <td colspan="2">
          <tiles:insertAttribute name="footer" />
        </td>
      </tr>
    </table>
  </body>
</html>

2. 在 tiles-defs.xml 中注册模板
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
  <definition name="myapp.homepage" template="/layouts/classic.jsp">
    <put-attribute name="title" value="Tiles tutorial homepage" />
    <put-attribute name="header" value="/tiles/banner.jsp" />
    <put-attribute name="menu" value="/tiles/common_menu.jsp" />
    <put-attribute name="body" value="/tiles/home_body.jsp" />
    <put-attribute name="footer" value="/tiles/credits.jsp" />
  </definition>
</tiles-definitions>

3. 在所有页面中,都可以使用该 <tiles:insertDefinition> 来使用布局
      <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
      <tiles:insertDefinition name="myapp.homepage" />
   z或者在 servlet 中通过以下代码使用 tiles
      TilesContainer container = ServletUtil.getContainer(
              request.getSession().getServletContext());
      container.render("myapp.homepage", request, response);
   Advanced Topic/Rendering Utilities中介绍了如何使用 TilesDispatchSevlet 显示

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Advanced Topics/Nesting and Extending
tiles-defs.xml 中 <definition> 元素的使用方法

在 tiles-defs.xml 配置文件中,一个<definition>1的定义中,通过<put-attribue>嵌套引用另
一个<definition>2,这时将 <definition>2 称为 <definiton>1的 subdefinition;
也可以让一个<definition>继承另一个<definition>

在 tiles-defs.xml 中使用 subdefinition:
   <!-- subdefiniton也就是一个普通的 definition,可以作为其他 definition 的属性 -->
   <definition name="myapp.homepage.body" template="/layouts/three_rows.jsp">
        <put-attribute name="one" value="/tiles/headlines.jsp" />
        <put-attribute name="two" value="/tiles/topics.jsp" />
        <put-attribute name="one" value="/tiles/comments.jsp" />
   </definition>

   <definition name="myapp.homepage" template="/layouts/classic.jsp">
        <put-attribute name="title" value="Tiles tutorial homepage" />
        <put-attribute name="header" value="/tiles/banner.jsp" />
        <put-attribute name="menu" value="/tiles/common_menu.jsp" />
        <!-- 在这里使用已经定义的 myapp.home.body 作为属性 -->
        <put-attribute name="body" value="myapp.homepage.body" />
        <put-attribute name="footer" value="/tiles/credits.jsp" />
   </definition>

也可以把 subdefinition 不显示的定义在 tiles-defs.xml中,匿名使用:
   <definition name="myapp.homepage" template="/layouts/classic.jsp">
        <put-attribute name="title" value="Tiles tutorial homepage" />
        <put-attribute name="header" value="/tiles/banner.jsp" />
        <put-attribute name="menu" value="/tiles/common_menu.jsp" />
        <put-attribute name="body">
          <definition template="/layouts/three_rows.jsp">
            <put-attribute name="one" value="/tiles/headlines.jsp" />
            <put-attribute name="two" value="/tiles/topics.jsp" />
            <put-attribute name="one" value="/tiles/comments.jsp" />
          </definition>
        </put-attribute>
        <put-attribute name="footer" value="/tiles/credits.jsp" />
   </definition>

所谓 层叠属性cascade-attribute:将定义在<definition>1中的属性<tiles:insertAttribute>1
标记为cascade,那么<definition>1 的subdefinition <definition>2的template包含的所有
<tiles:insertAttribute>中,如果 <tiles:insertAttribute>x的name属性 与
<tiles:insertAttribute>1的name 相同的,<definiton>2 就可以使用定义在 <definiton>1中的
<tiles:insertAttribute>1 作为 <definiton>2 的 <tiles:insertAttribute>x,例如:
   z模板文件为:
      /layout/def-template.jsp
         <tiles:insertAttribute name="def-attr-name1"/><br> <!-- ^^^^ -->
         <tiles:insertAttribute name="def-attr-name2"/><br>
      /layout/subdef-template.jsp
         <tiles:insertAttribute name="subdef-attr-name"/><br>
         <tiles:insertAttribute name="def-attr-name1"/><br> <!-- ^^^^ -->
   tiles-defs.xml 为:
      <definition name="definition1" template="/layout/def-template">
         <put-attribute name="def-attr-name1" value="/xxx.jsp" cascade="true"/>
         <put-attribute name="def-attr-name2" value="/yyy.jsp"/>
         <put-attribute name="def-attr-name3" value="definition2"/>
      </definition>
      <definition name="definition2" template="/layout/subdef-template.jsp"/>
         <put-attribute name="subdef-attr-name" value="/zzz.jsp"/>
         <!--
              z无须设置<put-attribute name='def-attr-name1'.../>,
              z使用 definition1 中定义的内容即可,认为不太常用
          -->
      </definiiton>

<definition>的继承,例如,myapp.homepage 继承 myapp.page.common :
<definition name="myapp.page.common" template="/layouts/classic.jsp">
  <put-attribute name="header" value="/tiles/banner.jsp" />
  <put-attribute name="menu" value="/tiles/common_menu.jsp" />
  <put-attribute name="footer" value="/tiles/credits.jsp" />
</definition>

<definition name="myapp.homepage" extends="myapp.page.common">
  <put-attribute name="title" value="Tiles tutorial homepage" />
  <put-attribute name="body" value="myapp.homepage.body" />
</definition>

<definiton>在继承时,也可以进行覆盖,例如:
<definition name="myapp.homepage.alternate" extends="myapp.homepage"
       template="/layouts/alternate.jsp" > <!-- 覆盖模板属性 -->
   <!-- 覆盖 put-attribute 元素 -->
   <put-attribute name="menu" value="/tiles/common_menu_for_customers.jsp" />
</definition>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Advanced Topics/Runtime Composition:
tiles提供的标签:<tiles:insertTemplate>

直接在.jsp中定义界面布局,这样就无须在 tiles-defs.xml 中再配置 <definition>元素,例如:
   user-page.jsp:
      <tiles:insertTemplate template="/layouts/classic.jsp">
        <tiles:putAttribute name="title" value="Tiles tutorial homepage" />
        <tiles:putAttribute name="header" value="/tiles/banner.jsp" />
        <tiles:putAttribute name="menu" value="/tiles/common_menu.jsp" />
        <tiles:putAttribute name="body">
          <tiles:insertTemplate template="/layouts/variable_rows.jsp">
            <tiles:putListAttribute name="items">
              <tiles:addAttribute value="/tiles/banner.jsp" />
              <tiles:addAttribute value="/tiles/common_menu.jsp" />
              <tiles:addAttribute value="/tiles/credits.jsp" />
            </tiles:putListAttribute>
          </tiles:insertTemplate>
        </tiles:putAttribute
        <tiles:putAttribute name="footer" value="/tiles/credits.jsp" />
      </tiles:insertTemplate>

也可以在 .jsp 中继承已经在 tiles-defs.xml 中配置的 <definition>,并覆盖template属性和
<tiles:putAttribute> 属性
<tiles:insertDefinition name="myapp.homepage.customer"
       template="/layouts/alternative_layout.jsp">
  <tiles:putAttribute name="menu" value="/tiles/common_menu_for_customers.jsp"/>
</tiles:insertDefinition>

myapp.homepage.customer 为:
<definition name="myapp.homepage" extends="myapp.page.common">
  <put-attribute name="title" value="Tiles tutorial homepage" />
  <put-attribute name="body" value="myapp.homepage.body" />
</definition>

被 myapp.homepage.customer 继承的 myapp.page.common 为:
<definition name="myapp.page.common" template="/layouts/classic.jsp">
  <put-attribute name="header" value="/tiles/banner.jsp" />
  <put-attribute name="menu" value="/tiles/common_menu.jsp" />
  <put-attribute name="footer" value="/tiles/credits.jsp" />
</definition>

<tiles:insertDefinition>标签可以让.jsp使用 已经注册在tiles-defs.xml中的模板 指定 .jsp页
的展现形式,<tiles:insertDefinition> 可以搞定基本全部页面的展现形式,但有些页面的展现形式
还是与 tiles-defs.xml中配置的模板 有些出入的,使用 <tiles:insertDefinition> 可以在jsp页
中直接设置页面的展现所使用的模板

使用以下代码来指定 servlet 显示时使用的模板,类似于jsp中的<tiles:insertTemplet>
        // 获取tiles容器
        TilesContainer container = ServletUtil.getContainer(
                request.getSession().getServletContext());
       
        // 创建body属性
        Attribute bodyAttribute = new Attribute("body");
        bodyAttribute.setValue("/tiles/body_customer.jsp");

        // 重新创建属性上下文
        AttributeContext attributeContext = container.startContext(request,
                response);
        // 将属性添加到上下文中
        attributeContext.setTemplateAttribute(bodyAttribute);

        // 根据属性上下文attributeContext,显示页面
        container.render("myapp.homepage", request, response);
        container.endContext(request, response);

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Advanced Topics/View Prepares
jsp 按照 tiles定义的模板显示前,会先调用注册在该模板上的preparer来完成init

定义ViewPreparer,例如:
   package tiles.viewpreparer;

   import org.apache.tiles.preparer.PreparerException;
   import org.apache.tiles.preparer.ViewPreparer;
   import org.apache.tiles.context.TilesRequestContext;
   import org.apache.tiles.AttributeContext;
   import org.apache.tiles.Attribute;

   public class CustomViewPreparer implements ViewPreparer {

       public void execute(TilesRequestContext tilesContext,
               AttributeContext attributeContext) throws PreparerException {
           attributeContext.putAttribute("body",
               new Attribute("This is the value added by the ViewPreparer"));
       }
   }
在 tiles-defs.xml 中为 <definition> 配置 preparer:
<definition name="preparer.definition"
      preparer="tiles.viewpreparer.CustomViewPreparer">
  <put-attribute name="foo" value="/bar/foo.jsp" />
</definition> 



tiles的默认实现中以单态的形式创建ViewPreparer,参考BasicPreparerFactory

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Advanced Topics/EL Support
可以在 tiles-defs.xml 中,配置<definition>元素时加入EL表达式

支持EL表达式的<definition>定义,通过EL指定界面显示时使用的 模板 和 内容,例如:
  <definition name="test.composite.el.definition"
       templateExpression="${layout}"> <!-- 显示时使用的模板 -->
      <put-attribute name="title"  value="String title, not a jsp."/>
      <put-attribute name="header" value="/header.jsp"/>
      <!-- 显示时的内容 -->
      <put-attribute name="body"   expression="${requestScope.body}"/>
  </definition>

在<definition>中使用EL时,需要进行如下配置:
   web.xml:
   <servlet>
       <servlet-name>tiles-init</servlet-name>
       <servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
       <init-param>
           <param-name>org.apache.tiles.evaluator.AttributeEvaluator</param-name>
           <param-value>org.apache.tiles.evaluator.el.ELAttributeEvaluatr</param-value>
       </init-param>
   </servlet>


当然也可以通过在jsp中指定:
   <tiles:insertDefinition name="myapp.homepage.customer"
          template="/layouts/alternative_layout.jsp">
     <tiles:putAttribute name="someAttr" value="${requestScope.myBean.attr}"/>
   </tiles:insertDefinition>

tiles-config.dtd tiles-config.dtd tiles-config.dtd tiles-config.dtd 立即下载

相关推荐

晶圆测试(wafer sort)全流程解析:从探针卡到良率统计的实战指南

本文详细解析了晶圆测试(wafer sort)的全流程,从探针卡选型到良率统计的实战指南。涵盖了12英寸先进制程产线的关键技术,包括探针卡系统、测试程序开发、产线自动化集成及数据分析,特别聚焦多站点并行测试的时序优化和接触阻抗异常排查,帮助工程师提升测试效率与准确性。

weixin_29279153的博客 731

Tiles 2.x 应用指南

Jakarta Tiles是一个用于在模板中对页面进行布局的框架。Tiles产生之初是Struts架构的一部分,后来Tiles独立出来常与Spring架构配合,本文描述了独立于其它架构而在原始WEB应用中使用Tiles的方法。基本用法设置Tiles元素 - 核心配置文件的书写方法Tiles核心配置文件格式为xml,文档类型为tiles-definitions。要在每一个配置文件的开头加

丑小鸭技术专栏 4523

[Pytorch案例实践001]手写MNIST数字识别

Pytorch实现手写数字识别,带完整数据集。

2403_83044722的博客 1115

apache-tiles2.1.2

tiles用来定义界面布局,瓦片 的意思,可能认为一个网页是有好多瓦片搭建而成吧去 http://tiles.apache.org/download.html 把他的源代码下载下来unzip -x tiles-2.1.2-src.zipcd tiles-2.1.2mv src src2mv src2/* .rmdir src2mvn compile dependency

enjoy tech life 2030

别再死记硬背GNN公式了!用PyTorch Geometric从零实现一个GraphSAGE(附完整代码)

本文通过PyTorch Geometric从零实现GraphSAGE模型,深入解析图神经网络的核心原理与实战应用。文章提供完整代码示例,涵盖环境配置、邻居采样、信息聚合等关键步骤,帮助开发者掌握图表示学习技术,避免陷入公式推导的困境。适合希望将GNN应用于实际项目的中级开发者和学生。

weixin_42530570的博客 347

深度学习笔记(3)——kernel(内核)与filter(滤波器)

本文仅仅简单介绍了kernel和filter的概念,介绍了确定filter和kernel个数的方法。

cs111211的博客 7137

Apache Tiles 2 Basic Demo

0.Maven Dependency &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.a...

jvisualvm 161

亚马逊商品评论爬取与情感分析实战:Python+BeautifulSoup高效解析(附反爬技巧)

本文详细介绍了使用Python和BeautifulSoup库高效爬取亚马逊商品评论并进行情感分析的完整实战流程。文章从环境搭建、核心代码编写入手,重点讲解了如何通过设置请求头、添加延迟等防封策略应对反爬机制,确保数据抓取的稳定性。最后,利用TextBlob库对评论文本进行情感分析,并通过可视化图表直观展示产品口碑,为电商选品与市场调研提供数据支持。

weixin_29046611的博客 1164

在struts2中使用tiles框架

为什么使用Tiles框架? 通常来说我们在开发Web应用时都会要求所有Web页面保持一致的外观,比如我们有页头,页脚,菜单和布局。下面如图所示为一种典型的页面布局:  以上网页被划分为了5个部分:Header,Menu,poster,Footer和Content。对于同一个站点所有Web页面来说,Header,Menu,poster和Footer部分的内容相同,而只有Content部分内容

Everlasting丶幻的专栏 1160

高通平台Camera sensor bring up!

Qualcomm Camera sensor bring up!0. 准确1. Kernel 底层驱动配置1.1 dtsi1.2 pinctrl2. Chi-Cdk XML 配置2.1 sensormodule2.2 sensor3. CHECK 本文主要针对高通平台SM7250进行描述,当然高通平台可能基本都差不多【第一个项目】 —only for sensor probe sucess. 0....

Understand-image 9239

实测可复现|2026 Cloudflare盾v4.0反反爬全实战:从JS/WASM逆向到JA3指纹伪装,手把手突破拦截(附完整逆向代码+避坑手册)

本文以2026年Cloudflare盾v4.0(集成Shield Synapse v2.0)为核心,全程以实战复盘为视角,拆解了从JS/WASM混合逆向、全维度指纹伪装(JA3+浏览器指纹)、人类行为模拟,到代理池搭建的全流程,整合了完整可复现的代码,所有步骤和踩坑点均为实测所得,无任何AI套话,新手也能跟着复现,最终实现爬取成功率从12%提升至95%+。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1686

Struts + Tiles 配置错误解决方法

Struts2.0.11.1/2 + Tiles 2.0.4(是Struts2.0.11的一部分)Struts2.0.11.2比Struts2.0.11.1修改了一些安全性问题。配置根据网上的例子Tiles的时候,出现两个比较头疼的问题,终于弄明白错在什么地方了。1. org.apache.tiles.taglib.UseAttributeTag$Tei 找不到的问题。10:12:

1490

【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)和CA(匀加速),滤波使用EKF。附完整代码

CV模型:状态包含位置、速度和零加速度(9维状态),状态转移矩阵忽略加速度项CA模型:完整包含位置、速度和加速度(9维状态),状态转移矩阵包含二次项过程噪声矩阵Q分别根据两种模型的运动特性推导。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 561

Spring Web Flow 2.1获得Spring Security 3和Spring 3

Spring Web Flow 版本2.1现在可用。 Spring Web Flow是Spring Framework Web堆栈的一个组件,致力于在Web应用程序中定义和执行用户界面流。 Spring Web Flow 2.1建立在Spring Security 3,Portlet API 2.0,Spring 3和Tiles 2.1.2之上。 它引入了对JSF 2的初始支持,这意味...

140

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

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

嵌入式系统是一种专用的计算机系统,广泛应用于各种设备中,如汽车电子、智能家居、工业自动化等领域

- 硬件约束:CPU处理能力、内存容量、外设接口类型(如UART、SPI、CAN等)。 - 软件约束:实时操作系统(RTOS)选择、开发语言(C/C++为主)、代码可移植性要求。 - 行业标准:如汽车电子需符合ISO 26262功能安全标准,医疗设备需满足FDA认证要求。

[Blog][Domain] programb.blog.youkuaiyun.com 364

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

struts2.0 整合tiles 配置

1.在WEB-INF/lib下加入所需的jar包     commons-digester-1.6.jar,     tiles-core-2.0-20070207.130156-4.jar,    tiles-api-2.0-20070207.130156-4.jar,    struts2-tiles-plugin-2.0.6.jar,struts2-core-2.0.6.jarxwor...

zfsn7722483的专栏 215

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

struts1.2和struts1.3的tiles框架的区别

[color=red][b]struts1.3[/b][/color] 需要在web.xml文件中加入: chainConfig org/apache/struts/tiles/chain-config.xml 此段初始化 [color=darkred]struts1.2则不需要。[/color] [col...

196

Apache Tiles教程

Apache Tiles是表现层的布局引擎。 在通常我们用jsp页面做布局时,通常会用<jsp:include page=”“/>或者<%@include file=”“%>将多个页面组合在一起。但页面一多,而且需要每个页面都要使用上述的标签包含其他通用页面。这样不方便维护,而apache tile解决了这个问题。下面介绍一个使用Apache Tiles的示例Maven导入包<dependency

Chenny的blog 3159

springmvc 整合apache tiles

springmvc 整合apache tiles 博客分类:   spring springmvc springmvc 整合apache tilesapache tilesdispatcher and tiles     最近把springmvc3.2.0 和 apache tiles 整合了一下,并用mvn构建了web工程,下面把关键点说明一下。前提:springmvc...

jceator123的博客 285

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

Apache Tiles

Apache TilesApache的Tiles是一个用于建立简便的Web应用程序用户接口的模板框架。Tiles允许作者定义页片断(page fragment),这些页片断能在运行时被整合进完整的页中。这些片断或者代码块,能被简单的包含,目的是为了减少页面间公共元素的复制,或者是用其它代码块嵌入来开发一系列可重用的模板。这些模板简化(streamline)了完整的应用开发。Tiles作为Str

chszs的专栏 3173

Struts-2.1.6整合Tiles2全攻略

首先,我声明我用的是Struts-2.1.6而不是Struts-2.0.x,2.1和2.0是有些不同的,希望大家注意。下面进行配置步骤:1、导入包,把Struts-2.1.6文件夹lib里的jar包复制到项目文件WEB-INF/lib里,一共13个:1)struts2-core-2.1.6.jar2)xwork-2.1.2.jar3)freemarker-2.3.13.jar4

alex311的专栏 1056

Spring MVC之使用Apache Tiles

有时候,一些页面会共用同样的布局,比如相同的头部菜单或者底部内容,可以将重复的内容抽取出来,写在单独的文件里,而每个页面在适当的地方引入这些文件。但是即使这样,也还是显得繁琐,而且一旦布局变化(比如头部的菜单移动到侧边栏),每个文件也都要改。而使用Apache Tiles,可以将方便地重复使用布局模板,由于布局间可以继承,对布局变化的处理也更加方便。 定义Tiles视图解析器 下面代码是继承自WebMvcConfigurerAdapter的WebConfig类,在其中定义了TilesConfigurer和T

谈谈IT 292

spring tiles_Spring MVC 3模板和Apache Tiles

spring tiles 对于任何Web应用程序,有效的设计考虑因素是使用模板引擎(或工具),并且由于具有Spring的“可插拔”特性,集成模板机制(例如Apache Tiles)确实要容易得多。 在这篇简单的文章中,我将向您简要介绍如何将Tiles用作Web应用程序的模板引擎! 准备就绪:Web应用程序设置 设置Maven并导入Spring-MVC库和Apache Tiles ...

最佳 Java 编程 191

springmvc整合Apache tiles基于java配置的demo

springmvc整合apache tilesspringmvc整合Apache tiles,虽然是个很简单的东西,但是由于自己太菜,用了好久。 首先是项目的构建,用的是gradle,项目构建主要的问题项目依赖用到了slf4j,个人感觉这个包依赖比较奇怪,版本稍微不对就会出问题,因为比较懒,直接用以前的项目依赖配置,然后新加进这个包的时候就各种问题,看着依赖树眼镜都快花了,最后总算弄好了。 以下

wkNote 830
上一篇: spring 注解(一)
下一篇: hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)等
lb8607
博客等级 码龄18年 17粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lb8607

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值