Apache Tiles是一个JavaEE应用的页面布局框架。Tiles框架提供了一种模板机制,可以为某一类页面定义一个通用的模板,该模板定义了页面的整体布局。布局由可以复用的多个块组成,每个页面可以有选择性的重新定义块而达到组件的复用。

Tiles最先作为Apache Struts框架的一个组件,后来被独立为Apache的一个独立项目。

Tiles主要特点:

1,模板机制的页面布局功能 2,灵活的布局重构机制。使用模板的页面,可以直接在JSP里使用Tiles提供的标签重新定义块元素,也可以使用类似tiles.xml等配置文件定义。 3,易于与Struts,Shale,JSF等框架集成

平时在配置文件中总是因为路径问题而头疼,tiles帮忙了。

result组件中发type包含了tiles。通过在tiles.xml文件中配置的路径,每一个result返回的jsp页面路径就会很清晰,404的错误就远离了。

写法如下:

1. 在struts.xml文件中添加:

1)定义一个package包,让其继承tiles-default。

<contant name="struts.convention.relative.result.types" value="tiles" />

<package extends="tiles-default" name="centric_default" namespace="/">

<interceptors>
   <!-- 登录检查 -->
   <interceptor class="org.centric.modules.interceptor.CheckLoginInterceptor" name="checkLogin" />

<interceptor-stack name="default-stack">
    <interceptor-ref name="checkLogin" />
    <interceptor-ref name="defaultStack">
     <param name="exception.logLevel">error</param>
    </interceptor-ref>
   </interceptor-stack>

  <global-results>
   <result name="login">/login.jsp</result>

</global-results>

<global-exception-mappings>
   <exception-mapping exception="java.lang.Exception" result="exception_stack" />
  </global-exception-mappings>
 </package>

2) 其他的包继承这个包即可。

<package name="flexpaper" extends="centric_default" namespace="/flexpaper">
  <action name="fileconvert" method="*" class="fileconvertAction">
  </action>
 </package>

3)编写tiles.xml文件

<?xml version="1.0" encoding="UTF-8"?> <!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>

<!-- template/*nav.jsp -->
 <definition name="nav" templateExpression="/templates/template1/templatenav.jsp">
  <display-name>目前等同style</display-name>
  <put-attribute name="trails" type="template" value="/none.jsp" />
  <put-attribute name="showExtMsg" type="template" value="../float_div.jsp" />
  <put-attribute name="body" type="template" value="/welcome.jsp" />
 </definition>

<definition extends="nav" name="/*/*/*/*">
  <put-attribute name="body" type="template" value="/view/{1}/{2}/{3}/{4}.jsp" />
 </definition>

</tiles-definitions>

转自https://www.cnblogs.com/guanghuiqq/archive/2012/08/24/2654296.html

struts.xml文件中配置tiles.xml的更多相关文章

  1. JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法

    在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,远哥目前找到了2种方法.   这2种方式都可以实现不用persist ...

  2. Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)

    <bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil& ...

  3. 不在JPA 的 persistence.xml 文件中配置Entity class的解决办法

    在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,2种方法可以解决此问题: 这2种方式都可以实现不用在persiste ...

  4. web.xml文件中配置ShallowEtagHeaderFilter需注意的问题

    问题现象及解决方法 今天在Spring MVC应用中加入ShallowEtagHeaderFilter时,发现返回的响应中没有etag头,上网查了很多相关资料,也试了很多方法依然不起作用.在查看web ...

  5. Spring 在xml文件中配置Bean

    Spring容器是一个大工厂,负责创建.管理所有的Bean. Spring容器支持2种格式的配置文件:xml文件.properties文件,最常用的是xml文件. Bean在xml文件中的配置 < ...

  6. xml文件中配置JDBC源遇到问题 : The reference to entity "characterEncoding" must end with the ';' delimiter

    数据源配置时加上编码转换格式后出问题了: The reference to entity"characterEncoding" must end with the ';' deli ...

  7. Maven 在 pom.xml 文件中配置 repositories 仓库

    如果你希望在你的项目中使用独立的 repositories . 例如,你希望配置使用自己的 https://maven.ossez.com/repository/internal 作为仓库. 例如,修 ...

  8. ssm框架中applicationContext.xml文件中配置别名

    在applicationContext.xml中配置如下: 通过以下property标签中给定name属性value属性及对应的值,来将domain包下所有实体类设置别名. 在xxxDao.xml中 ...

  9. maven 项目 pom.xml文件中配置的jar包下载报错

    [ERROR] [ERROR] Some problems were encountered while processing the POMs:[ERROR] 'dependencies.depen ...

随机推荐

  1. WPF实现双击事件MouseDoubleClick

    本实例是基于Canvas增加双击事件 public class RevitCanvas : Canvas { public RevitCanvas() { _oncetime = long.MaxVa ...

  2. Android notifyDataSetChanged

    notifyDataSetChanged()用于动态的更新ListView中的数据.最后还是会调用Adapter中的getView函数. notifyDataSetChanged()相比于setAda ...

  3. LintCode #3 统计数字

    解题思路请参考 代码(可以通过,不过很乱,需要整理): /// <summary> /// 计算n在数组[targetNum]中出现的次数 /// 形如:[0, 1, 2, 3, 4, 5 ...

  4. 如何允许你的应用移动到SD卡?(转至http://blog.csdn.net/feng88724/article/details/6946670)

    我们在使用Android手机时发现,有的程序允许被移动到SD卡,而有的不行?这是为什么呢? 因为在Android 2.2版之后, Android应用才被允许移动到SD卡中.而在此之前开发的应用,全部没 ...

  5. PHP中全局变量的使用global和$GLOBALS[]

    From: http://blog.csdn.net/happyqyt/article/details/7219889 用PHP开发项目,不可避免的会使用到全局变量,比如一些网站的配置信息,全站通用, ...

  6. mysql 中 时间和日期函数

    From: http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.html 一.MySQL 获得当前日期时间 函数 1.1 获得当前日 ...

  7. Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理

     

  8. Redis锁的简单应用

    本文版权归博客园和作者本人吴双共同所有 .转载爬虫请注明地址,博客园蜗牛 http://www.cnblogs.com/tdws/p/5712835.html 蜗牛Redis系列文章目录http:// ...

  9. 【WP8】自定义配置存储类

    之前在WP7升级到WP8的时候遇到配置不兼容的问题 情景:之前只有一个WP7版本,现在需要发布WP8版本,让用户可以从原来的WP7版本升级到WP8版本 一般情况下从WP7升级到WP8没什么问题 但是在 ...

  10. Android开发学习笔记-md5加密算法

    十六位的md5加密 private static void Md5(String plainText ) { try { MessageDigest md = MessageDigest.getIns ...