>Java >java지도 시간 >스프링 부트 통합 사이트 메시

스프링 부트 통합 사이트 메시

(*-*)浩
(*-*)浩앞으로
2019-09-04 16:52:423653검색

스프링 부트 통합 사이트 메시

Sitemesh 소개

Sitemesh는 웹 페이지 레이아웃, 데코레이션 및 기존 웹 애플리케이션과의 통합을 기반으로 하는 프레임워크입니다. 일관된 탐색 모음, 일관된 배너, 일관된 저작권 등과 같이 페이지 프로젝트 수가 많은 프로젝트에서 일관된 페이지 레이아웃 및 모양을 만드는 데 도움이 될 수 있습니다.

SiteMesh는 Servlet 필터를 기반으로 하며 응답을 가로채서 클라이언트에 전달하기 전에 장식합니다.

spring boot는 sitemesh를 통합합니다

통합을 위해 수행할 작업은 매우 간단합니다.

1 sitemesh.jar 패키지를 소개합니다

2. 구성 클래스와 필터 클래스를 추가합니다

3.

2.1.sitemesh.jar 패키지를 소개합니다.

maven pom 파일에 소개합니다:

<dependency>
<groupId>org.sitemesh</groupId>
<artifactId>sitemesh</artifactId>
<version>3.0.1</version>
</dependency>

구성 클래스 및 필터 클래스

구성 클래스는 다음과 같습니다.

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");

}

}

Decorator 페이지

Decorator 페이지 템플릿 페이지입니다. 필터 규칙에 정의된 페이지는 이 페이지로 장식됩니다.

<!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>

위 데코레이터 페이지에서 /admin/test와 같은 데코레이팅된 페이지를 방문하면 표시되는 내용은 데코레이터 페이지 + 데코레이팅된 페이지의 body 요소에 있는 콘텐츠, 1da2f56652b4404cf9e47f9a7ebff984는 장식된 페이지의 본문 요소 내의 콘텐츠로 대체됩니다. 테스트 페이지가 다음과 같다고 가정합니다.

<!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>

최종 페이지는

<!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>
입니다.

위 내용은 스프링 부트 통합 사이트 메시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제