Tiles是一种layout的概念,可以将一个页面拆分成多个部分。比如:title,header,body,bottom等等。在一个项目中,这些部分有可能是相同的。这时使用Tiles配置相同的部分再好不过了。下面是配置Tiles的过程:

1,在项目中引入tiles依赖的包,比如:

tiles-api-2.0.6.jar,tiles-jsp-2.0.6.jar,struts2-tiles-plugin-2.2.3.jar,tiles-core-2.0.6.jar等等。

包下载地址:http://www.javaxxz.com/file.php?id=15561145

2,创建一个模板页面,抽取出公共的部分。比如:

<%@ page language=”java” contentType=”text/html; charset=UTF-8″
pageEncoding=”UTF-8″%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”;
%>

//引入tiles标签
<%@ taglib prefix=”tiles” uri=”http://tiles.apache.org/tags-tiles” %>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<base href=”<%=basePath %>” />
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>

//公共部分title
<title><tiles:getAsString name=”title”/></title>
<!– 公共资源引入 –>
<tiles:insertAttribute name=”links” ignore=”true” />
</head>
<body>
<div data-role=”page”>

//公共部分head
<tiles:insertAttribute name=”head” />

//公共部分middle
<tiles:insertAttribute name=”middle”/>

//公共部分foot
<tiles:insertAttribute name=”foot” />
</div>
</body>
</html>

3,创建一个tiles配置文件main.xml配置如下:

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE tiles-definitions PUBLIC “-//Apache Software Foundation//DTD Tiles Configuration
2.0//EN” “http://tiles.apache.org/dtds/tiles-config_2_0.dtd”>

<tiles-definitions>
<definition name=”index” template=”/pgapp/main/template.jsp”>
<put-attribute name=”title” value=”标题” />
<put-attribute name=”links” value=”/pgapp/main/links.jsp”/>
<put-attribute name=”head” value=”/pgapp/main/head.jsp”/>
<put-attribute name=”middle” value=”/pgapp/main/index.jsp”/>
<put-attribute name=”foot” value=”/pgapp/main/foot.jsp” />
</definition>
</tiles-definitions>

文件中配置了模板文件中,各个部分所对应的内容页面。

4,在web.xml中配置加载tiles中的main.xml文件

<context-param>
<param-name>org.apache.tiles.CONTAINER_FACTORY</param-name>
<param-value>
org.apache.struts2.tiles.StrutsTilesContainerFactory
</param-value>
</context-param>
<context-param>
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
<param-value>
/WEB-INF/tiles/main.xml
</param-value>
</context-param>

5,在struts.xml文件中配置。

<!– struts2配置tiles–>
<package name=”cms” namespace=”/cms” extends=”tiles-default” >
<!– 导航配置 –>
<action name=”*” class=”xxxAction” method=”{1}”>
<result type=”tiles”>${targetUrl}</result>
<result name=”form_submit”  type=”redirectAction”>${targetUrl}</result>
</action>
</package>

配置中的${targetUrl}需要在xxxAction中返回才行。

6,在action中返回targetUrl。

在action中创建一个属性targetUrl,并设置其setter和getter方法。然后在return SUCCESS;前设置如:setTargetUrl(“index”);则struts2就知道去main.xml文件中找name=”index”的 配置,并根据模板页封装好整个页面。

转载于:https://www.cnblogs.com/javawebstudy/archive/2013/02/28/struts2%e4%b8%ad%e9%85%8d%e7%bd%aetiles%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88.html

struts2+spring 项目中配置tiles的解决方案相关推荐

  1. vue.js项目中配置mapbox可视化地图api

    1. 本地创建vue.js项目 cmd或者terminal中运行下面的命令开出vue project manager,之后按照所需要配置创建vue.js项目 vue ui 2. 在mapbox官网上申 ...

  2. 在Spring项目中使用@Scheduled注解定义简单定时任务

    如题所示,有时候我们需要在Web项目中配置简单的定时任务,而且因为任务并不复杂不想使用定时调度框架(PS:Quartz.ActiveMQ .Kafka等),这时就可以考虑使用@Scheduled注解来 ...

  3. spring 项目中集成 Protocol Buffers 示例

    http://blog.csdn.net/fangzhangsc2006/article/details/8687388 本文适用于了解spring框架,同时想在spring项目中使用Protocol ...

  4. 【SpringBoot】Spring项目中value注解,@Value不能够读取到配置文件的值,无法成功注入值的问题汇总及解决

    Spring项目中value注解,@Value不能够读取到配置文件的值,无法成功注入值的问题汇总及解决 @Value注解 常规用法示例 我们都知道通过@Value()注解可以取到我们配置文件的内容,之 ...

  5. 将MongoDB集成到您的Spring项目中

    本文展示了如何通过注释配置将MongoDB集成到您的spring项目中. 我们将从Gradle配置开始. group 'com.gkatzioura.spring' version '1.0-SNAP ...

  6. redis集成spring_将Redis集成到您的Spring项目中

    redis集成spring 本文介绍如何通过注释配置将Redis缓存集成到您的spring项目中. 我们将从Gradle配置开始. 我们将使用jedis驱动程序. group 'com.gkatzio ...

  7. spring 项目集成配置_Spring重试–与项目集成的方式

    spring 项目集成配置 如果您需要在代码中实现健壮的重试逻辑,一种行之有效的方法是使用spring重试库. 我的目的不是要展示如何使用spring retry项目本身,而是要演示将其集成到代码库中 ...

  8. 将Redis集成到您的Spring项目中

    本文展示了如何通过注释配置将Redis缓存集成到您的spring项目中. 我们将从Gradle配置开始. 我们将使用jedis驱动程序. group 'com.gkatzioura.spring' v ...

  9. 在Maven+Spring项目中使用Node.js的Gulp进行前端自动化构建

    摘要: 在Maven+Spring项目中使用Node.js的Gulp进行前端自动化构建 刚开始打算进行前后端分离开发,后来发现在使用JSP或者Freemarker做动态页面时,想发挥这些自动化构建工具 ...

最新文章

  1. 广东省生态土壤所孙蔚旻团队FEMS: 砷锑污染土壤剖面的微生物世界
  2. Spark Master启动源码分析
  3. python 文字语音朗读-怎么用 Python 来朗读网页 ?
  4. c/c++头文件函数一览表
  5. MXD文档保存和地图浏览
  6. 河北科技创新平台年报系统 - 头脑风暴会
  7. 在机器学习中,怎么对超参数Hyper parameter优化?我总结了以下常见的方法
  8. JSP中动态添加 “添加附件选择框”
  9. Sql Server 中利用游标对table 的数据进行分组统计式输出…
  10. 弱人工智能才是未来AI研究的主流方向
  11. uva 1339 题解
  12. 除了字节,腾讯也来“抢”阿里的这门生意
  13. 配置各个连接oracle客户端
  14. python中eof怎么改正_如何修复Python3中读取用户输入时的EOF错误?
  15. Katana程序集列表
  16. 波士顿大学 计算机专业,波士顿大学计算机科学专业波士顿大学计算机科学专业.pdf...
  17. Linux发行版幽灵漏洞的backport
  18. Flex读取Excel
  19. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day19】—— 集合框架3
  20. 安全教育APP开发应该具备哪些功能

热门文章

  1. linux 变量c file代表的内容.,LinuxC编程基础--mak.ppt
  2. 计算机视觉(一)——深度学习
  3. 深度学习训练和推理有何不同?
  4. 使用Bert/ERNIE进行中文短文本分类(附数据集)
  5. phpstudy快速搭建网站_小白快速上手搭建属于自己的网站
  6. python中怎样使用re模块_python如何导入re模块
  7. 与roc的区别_2020斯柯达柯珞克Karoq对比大众T-ROC,你会选哪个?
  8. html5中秋博饼,2020年中秋博饼优秀作文(精选5篇)
  9. 动态取值_软件测试|动态测试技术
  10. 预印本(Preprint)及出版商的投稿政策