tiles装饰集成

一般一个系统一个装饰即可,但是有些,模块又有自己的装饰需要,这时可以大的用装饰,局部模块用include的方式

tiles装饰集成:

pom.xml中

<tiles.version>3.0.1</tiles.version>

<dependency>

<groupId>org.apache.tiles</groupId>

<artifactId>tiles-extras</artifactId>

<version>${tiles.version}</version>

</dependency>

<dependency>

<groupId>org.apache.tiles</groupId>

扫描二维码关注公众号,回复: 267293 查看本文章

<artifactId>tiles-servlet</artifactId>

<version>${tiles.version}</version>

</dependency>

<dependency>

<groupId>org.apache.tiles</groupId>

<artifactId>tiles-jsp</artifactId>

<version>${tiles.version}</version>

</dependency>

springMvc配置文件中:

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">

<property name="definitions">

<list>

<value>/WEB-INF/tiles/tiles.xml</value>

</list>

</property>

</bean>

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1" p:viewClass="org.springframework.web.servlet.view.tiles3.TilesView"/>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/views/" p:suffix=".jsp" p:order="2"/>

        <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">//符合解析器要定义顺序(数据格式),前面两个是映射规则

<property name="order" value="3" />

<property name="defaultViews">

<list>

<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>

</list>

</property>

</bean>

tiles配置文件://路劲映射方式操作模板,name为controller返回的规则,*号为占位符对应{1}{2},不符合这个规则的返回则是独立弹出的页面,没有装饰,如登录,注册等

<?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.definition" template="/WEB-INF/views/layout.jsp">

<put-attribute name="title" value="" />

<put-attribute name="header" value="/WEB-INF/views/frame/top.jsp" />

<put-attribute name="body" value="" />

<put-attribute name="footer" value="/WEB-INF/views/frame/foot.jsp" />

</definition>

<definition name="*.p" extends="base.definition">

<put-attribute name="title" value="用户注册" />

<put-attribute name="body" value="/WEB-INF/views/{1}.jsp" />

</definition>

    <definition name="*/*.p" extends="base.definition">

        <put-attribute name="body" value="/WEB-INF/views/{1}/{2}.jsp" />

    </definition>

    <definition name="*/*/*.p" extends="base.definition">

        <put-attribute name="body" value="/WEB-INF/views/{1}/{2}/{3}.jsp" />

    </definition>

    

</tiles-definitions>

jsp模板:

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> 

<html> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

<title><tiles:insertAttribute name="title" ignore="true" /></title> 

</head> 

<body > 

<tiles:insertAttribute name="header" /> 

<tiles:insertAttribute name="body" />

<tiles:insertAttribute name="footer" /> 

 </body> 

 </html> 

 java

 controller:优先检查titles规则,不符合就用用springmvc的映射规则(p:order="1",p:order="2")

 @RequestMapping("registerUI")

public String cRegisterUI(Model model) {

return "firm/companyReg.p";

}

@RequestMapping(value = "/firmRegister", method = RequestMethod.GET)

public String home(Model model) {

return "firm/firmRegister";

}

猜你喜欢

转载自yuhuiblog6338999322098842.iteye.com/blog/2314884