JavaWeb_SpringMVC和titles的简单整合
2016-01-17 15:05
411 查看
1 tiles组件
借用百度百科介绍的概念:Tiles 是一种JSP布局框架,主要目的是为了将复杂的jsp页面作为一个的页面的部分机能,然后用来组合成一个最终表示用页面用的,这样的话,便于对页面的各个机能的变更及维护。
Tiles使得struts在页面的处理方面多了一种选择。并且更容易实现代码的重用。
Tiles框架是建立在JSP的include指令基础上的,但它提供了比JSP的include指令更强大的功能。Tiles框架具有如下特性:
1. 创建可重用的模板
2. 动态构建和装载页面
3. 定义可重用的Tiles组件
4. 支持国际化。
2 在spring配置文件中增加对tiles的视图解析配置
<!-- Tiles3 Resolver --> <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver" p:order="1"/> <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> <property name="definitions"> <list> <value>classpath:tiles.xml</value> </list> </property> </bean>
3 在classpath下编写tiles文件
<!--?xml version="1.0" encoding="UTF-8"?--> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> <tiles-definitions> <!-- ↓↓↓====================layout==================↓↓↓ --> <!-- base --> <definition name="baseLayout" template="/WEB-INF/jsp/layouts/layout.jsp"> <put-attribute name="header" value="/WEB-INF/jsp/layouts/header.jsp" /> <put-attribute name="sidemenu" value=""/> <put-attribute name="body" value="" /> <put-attribute name="footer" value="/WEB-INF/jsp/layouts/footer.jsp" /> </definition> <!-- minyan_sidemenu --> <definition name="home_sidemenu" extends="baseLayout"> <put-attribute name="sidemenu" value="/WEB-INF/jsp/layouts/minyan_sidemenu.jsp" /> </definition> <!-- 主页 --> <definition name="home" extends="home_sidemenu"> <put-attribute name="body" value="/WEB-INF/jsp/admin/common/home.jsp" /> </definition> <!-- ↑↑↑===================MinYan===================↑↑↑ --> </tiles-definitions>
4 编写重要的layout.jsp模版
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="robots" content="noindex,nofollow"> <meta name="author" content=""> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="format-detection" content="telephone=no, email=no, address=no"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>minyan web</title> <link href="<%=basePath%>/css/bootstrap.min.css?<%=staticTimestamp%>" rel="stylesheet" type="text/css"> <link href="<%=basePath%>/css/font-awesome.min.css?<%=staticTimestamp%>" rel="stylesheet" type="text/css"> <link href="<%=basePath%>/lib/iCheck/skins/flat/_all.css?<%=staticTimestamp%>" rel="stylesheet" type="text/css"/> <link href="<%=basePath%>/css/bootstrap-datetimepicker.min.css?<%=staticTimestamp%>" rel="stylesheet" type="text/css"> <link href="<%=basePath%>/lib/select2/css/select2.min.css?<%=staticTimestamp%>" rel="stylesheet" type="text/css"> <link href="<%=basePath%>/css/iconfont/iconfont.css?<%=staticTimestamp%>" rel="stylesheet" type="text/css"> <link href="<%=basePath%>/css/style.css?<%=staticTimestamp%>" rel="stylesheet" type="text/css"> <link href="<%=basePath%>/css/theme.css?<%=staticTimestamp%>" rel="stylesheet" type="text/css"> <script type="text/javascript" src="<%=basePath%>/js/jquery-1.11.1.min.js?<%=staticTimestamp%>"></script> <script type="text/javascript" src="<%=basePath%>/lib/select2/js/select2.min.js?<%=staticTimestamp%>"></script> <script type="text/javascript" src="<%=basePath%>/js/bootstrap.min.js?<%=staticTimestamp%>"></script> <script type="text/javascript" src="<%=basePath%>/js/bootstrap-datetimepicker.js?<%=staticTimestamp%>"></script> <script type="text/javascript" src="<%=basePath%>/js/bootstrap-datetimepicker.ja.js?<%=staticTimestamp%>"></script> <script type="text/javascript" src="<%=basePath%>/lib/iCheck/icheck.min.js?<%=staticTimestamp%>" ></script> <script type="text/javascript" src="<%=basePath%>/js/common.js?<%=staticTimestamp%>"></script> </head> <body class="theme-1"> <tiles:insertAttribute name="header" /> <div class="row-offcanvas row-offcanvas-left"> <tiles:insertAttribute name="sidemenu" /> <div class="content"> <tiles:insertAttribute name="body" /> <tiles:insertAttribute name="footer" /> </div> </div> </body> </html>其中tiles:insertAttribute根据项目需求定制页面模版。(jsp中用的是bootstarp不需注意class属性等)
5 在controller方法的返回值返回tiles.xml文件中的name属性即可
比如:@RequestMapping(value = "/init.do") public String welcome(ModelMap model, HttpServletRequest request, @ModelAttribute(value = "pagenum") String p) { HashMap<String, Object> params = new HashMap<String, Object>(); // 页码 if (StringUtils.isEmpty(p)) { p = "0"; } List<Account> accounts = new ArrayList<Account>(); for (int i = 0; i < 20; i++) { Account account = new Account(i + 1, "login:" + i, "password:" + i); accounts.add(account); } // 分页设定 PaggingHolder<Account> pagenation = new PaggingHolder<Account>(accounts); pagenation.setPage(Integer.parseInt(p)); pagenation.setNrOfElements(accounts.size()); model.addAttribute("accountList", pagenation); model.addAttribute("searchCond", params); return "home"; }所需jar包http://download.csdn.net/detail/jwiang/9407369
相关文章推荐
- Eclipse下Preferences解析
- 【转】零基础写Java知乎爬虫之进阶篇
- java BigInteger 的使用
- Git学习笔记(2)-Eclipse中Git插件使用
- 浅谈Java平台无关性
- Java第二章总结(数据类型,运算符)
- Java 入门 之 system.out.println
- Spring (五) 声明式事务
- 3 Maven-POM文件说明
- Spring 整合Structs
- JAVA NIO 基础(一)
- JavaOO第二章知识总结
- spring (三) 加载外部资源文件/配置jdbc数据源
- 基于java实现,封装验证码实例
- spring (二) 构造器注入和工厂模式注入
- spring (一) 不同版本加载 bean 的方式
- 保存Eclipse控制台输出的内容
- Struts2 (四) 声明式验证(注解/xml)
- 出来驾到学java2
- java Math类