Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1469|回复: 0

在Spring和Struts2项目中整合Tiles解决方案

  [复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2013-1-15 10:24:26 | 显示全部楼层 |阅读模式
    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等等。
    包下载地址:
    文件名:tiles包.rar
    下载地址:http://www.javaxxz.com/file.php?id=15561145
    2,创建一个模板页面,抽取出公共的部分。比如:
    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2.     pageEncoding="UTF-8"%>
    3. <%
    4. String path = request.getContextPath();
    5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    6. %>
    7. //引入tiles标签
    8. <%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
    9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    10. <html>
    11. <head>
    12. <base href="<%=basePath %>" />
    13. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    14. //公共部分title
    15. <title><tiles:getAsString name="title"/></title>
    16. <!-- 公共资源引入 -->
    17. <tiles:insertAttribute name="links" ignore="true" />
    18. </head>
    19. <body>
    20. <div data-role="page">
    21.        //公共部分head
    22.         <tiles:insertAttribute name="head" />
    23.        //公共部分middle
    24.         <tiles:insertAttribute name="middle"/>
    25.        //公共部分foot
    26.         <tiles:insertAttribute name="foot" />
    27. </div>
    28. </body>
    29. </html>
    复制代码
    3,创建一个tiles配置文件main.xml配置如下:
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration
    3. 2.0//EN" "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

    4. <tiles-definitions>
    5.     <definition name="index" template="/pgapp/main/template.jsp">
    6.         <put-attribute name="title" value="标题" />
    7.         <put-attribute name="links" value="/pgapp/main/links.jsp"/>
    8.         <put-attribute name="head" value="/pgapp/main/head.jsp"/>
    9.         <put-attribute name="middle" value="/pgapp/main/index.jsp"/>
    10.         <put-attribute name="foot" value="/pgapp/main/foot.jsp" />
    11.     </definition>
    12. </tiles-definitions>
    复制代码
    文件中配置了模板文件中,各个部分所对应的内容页面。
    4,在web.xml中配置加载tiles中的main.xml文件
    1. <context-param>
    2.     <param-name>org.apache.tiles.CONTAINER_FACTORY</param-name>
    3.     <param-value>
    4.             org.apache.struts2.tiles.StrutsTilesContainerFactory
    5.         </param-value>
    6.   </context-param>
    7.   <context-param>
    8.     <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
    9.     <param-value>
    10.             /WEB-INF/tiles/main.xml
    11.     </param-value>
    12.   </context-param>
    复制代码
    5,在struts.xml文件中配置。
    1.     <!-- struts2配置tiles-->
    2.     <package name="cms" namespace="/cms" extends="tiles-default" >
    3.         <!-- 导航配置 -->
    4.         <action name="*" class="xxxAction" method="{1}">
    5.             <result type="tiles">${targetUrl}</result>
    6.             <result name="form_submit"  type="redirectAction">${targetUrl}</result>
    7.         </action>
    8.     </package>
    复制代码
    配置中的${targetUrl}需要在xxxAction中返回才行。
    6,在action中返回targetUrl。
    在action中创建一个属性targetUrl,并设置其setter和getter方法。然后在return SUCCESS;前设置如:setTargetUrl("index");则struts2就知道去main.xml文件中找name="index"的配置,并根据模板页封装好整个页面。

    回复

    使用道具 举报

    该用户从未签到

    发表于 2013-1-15 10:27:49 | 显示全部楼层
    总结的不错 顶楼主!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-1-15 20:32:41 | 显示全部楼层
    谢谢楼主 总结的非常好啊!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-5 07:52 , Processed in 0.423312 second(s), 38 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表