SpringMVC集成Tiles布局引擎框架

来源:互联网 发布:暗黑西游记淘宝专区 编辑:程序博客网 时间:2024/05/16 07:28

Tiles布局框架, http://tiles.apache.org/ Spring已经对Tiles进行了集成。页头页尾公共模板页要靠这个,不然重复代码太多。


<dependency>            <groupId>org.apache.tiles</groupId>            <artifactId>tiles-servlet</artifactId>            <version>3.0.5</version>        </dependency>        <dependency>            <groupId>org.apache.tiles</groupId>            <artifactId>tiles-jsp</artifactId>            <version>3.0.5</version>        </dependency>        <dependency>            <groupId>org.apache.tiles</groupId>            <artifactId>tiles-core</artifactId>            <version>3.0.5</version>        </dependency>        <dependency>            <groupId>org.apache.tiles</groupId>            <artifactId>tiles-api</artifactId>            <version>3.0.5</version>        </dependency>


修改Spring的配置文件:

import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.ViewResolver;import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import org.springframework.web.servlet.view.InternalResourceViewResolver;import org.springframework.web.servlet.view.tiles3.TilesConfigurer;import org.springframework.web.servlet.view.tiles3.TilesViewResolver;@Configuration@EnableWebMvc@ComponentScan("blog.csdn.unix21.controller")public class WebConfig extends WebMvcConfigurerAdapter {    @Override    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {        configurer.enable();     }    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        // TODO Auto-generated method stub        super.addResourceHandlers(registry);    }    // Tiles    @Bean    public TilesConfigurer tilesConfigurer() {        TilesConfigurer tiles = new TilesConfigurer();        tiles.setDefinitions(new String[]{            "/WEB-INF/layout/tiles.xml","/WEB-INF/views/**/tiles.xml"        });        tiles.setCheckRefresh(true);        return tiles;    }    @Bean    public ViewResolver viewResolver() {        return new TilesViewResolver();    }}

page.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%><%@ taglib uri="http://www.springframework.org/tags" prefix="s" %><%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="t" %><%@ page session="false" %><html>    <head>        <title>${title}</title>    <link rel="stylesheet" type="text/css" href="<s:url value="/resources/common.css" />" >        ${mycss}    ${myjs}</head><body>    <div id="header">        <t:insertAttribute name="header" />    </div>    <div id="content">        <t:insertAttribute name="body" />    </div>    <div id="footer">        <t:insertAttribute name="footer" />    </div></body></html>


tiles.xml
<?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>    <definition name="base" template="/WEB-INF/layout/page.jsp">                <put-attribute name="header" value="/WEB-INF/layout/header.jsp" />        <put-attribute name="footer" value="/WEB-INF/layout/footer.jsp" />    </definition>    <definition name="demo" extends="base">        <put-attribute name="body" value="/WEB-INF/views/demo.jsp" />    </definition>    </tiles-definitions>

demo.controller

@RequestMapping(value = "/demo", method = RequestMethod.GET)    public ModelAndView demo() {           ModelAndView mv = new ModelAndView();        mv.addObject("title", "demo");        mv.addObject("mycss", "<link rel=\"stylesheet\" type=\"text/css\" \"/my.css\" >");        mv.addObject("myjs", "<script type=\"text/javascript\" src=\"http://blog.csdn.net/unix21/my.js\" charset=\"utf-8\"></script>");        mv.setViewName("demo");        return mv;    }

header.jsp和footer.jsp就是页头页尾。

大致文件结构


0 0
原创粉丝点击