Heim > Java > javaLernprogramm > Spring Boot integriertes Sitemesh

Spring Boot integriertes Sitemesh

(*-*)浩
Freigeben: 2019-09-04 16:52:42
nach vorne
3663 Leute haben es durchsucht

Spring Boot integriertes Sitemesh

Sitemesh-Einführung

Sitemesh ist ein Framework, das auf dem Layout, der Dekoration und der Integration von Webseiten in vorhandene Webanwendungen basiert. Es ist ein Dekorator. Es kann uns dabei helfen, in Projekten mit einer großen Anzahl von Seitenprojekten ein konsistentes Seitenlayout und Erscheinungsbild zu erstellen, z. B. konsistente Navigationsleisten, konsistente Banner, konsistente Urheberrechte usw.

SiteMesh basiert auf einem Servlet-Filter. Es fängt die Antwort ab und dekoriert sie, bevor sie an den Client übermittelt wird.

Spring Boot integriert Sitemesh

Die Integrationsarbeit ist sehr einfach:

1. Stellen Sie das sitemesh.jar-Paket vor

2 , Fügen Sie eine Konfigurationsklasse und eine Filterklasse hinzu

3. Fügen Sie eine Dekoratorseite hinzu

2.1 Führen Sie das sitemesh.jar-Paket ein

Fügen Sie es in die Maven-POM-Datei ein:

<dependency>
<groupId>org.sitemesh</groupId>
<artifactId>sitemesh</artifactId>
<version>3.0.1</version>
</dependency>
Nach dem Login kopieren

Konfigurationsklasse und Filterklasse

Die Konfigurationsklasse lautet wie folgt:

import org.springframework.boot.web.servlet.FilterRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

//生效配置,使之就像传统项目里sping的xml配置文件一样

@Configuration

public class WebConfig extends WebMvcConfigurerAdapter{

//注册成bean,就像传统项目spring配置文件中的<bean>标签

@Bean

public FilterRegistrationBean siteMeshFilter(){

FilterRegistrationBean fitler = new FilterRegistrationBean();

//实例化一个过滤器类

WebSiteMeshFilter siteMeshFilter = new WebSiteMeshFilter();

fitler.setFilter(siteMeshFilter);

return fitler;

}

}

过滤器类如下:

import org.sitemesh.builder.SiteMeshFilterBuilder;

import org.sitemesh.config.ConfigurableSiteMeshFilter;

public class WebSiteMeshFilter extends ConfigurableSiteMeshFilter{

@Override

protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {

//除了/admin/index和/admin/login页面外,其他所有/admin/下的页面都被/admin/index页面所装饰

builder.addDecoratorPath("/admin/*", "/admin/index")

.addExcludedPath("/admin/index")

.addExcludedPath("/admin/login");

}

}
Nach dem Login kopieren

Decorator-Seite

Die Dekoratorseite ist die Vorlagenseite, und die in den Filterregeln definierten Seiten werden von dieser Seite dekoriert.

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">

<head>

<title>装饰器页面</title>

</head>

<body>

...

<div id="content">

<sitemesh:write property=&#39;body&#39; />

</div>

</body>

</html>
Nach dem Login kopieren

Wenn wir mit der oben genannten Dekoratorseite die dekorierte Seite wie /admin/test besuchen, ist der angezeigte Inhalt die Dekoratorseite + der Inhalt im Körperelement der dekorierten Seite, wird durch den Inhalt im Body-Element der dekorierten Seite ersetzt. Gehen Sie davon aus, dass die Testseite wie folgt lautet:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">

<head>

<title>test页面</title>

</head>

<body>

<h1>我是test</h1>

</body>

</html>
Nach dem Login kopieren

Die letzte Seite lautet:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">

<head>

<title>装饰器页面</title>

</head>

<body>

...

<div id="content">

<h1>我是test</h1>

</div>

</body>

</html>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSpring Boot integriertes Sitemesh. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage