spring mvc 哪些模板引擎
-
Spring MVC 支持多种模板引擎,常见的包括:
-
JSP(JavaServer Pages):JSP 是 JavaEE 技术中的一部分,它允许在 HTML 中嵌入 Java 代码。在 Spring MVC 中,通过 InternalResourceViewResolver 配置 JSP 视图解析器,将 JSP 文件作为模板引擎使用。
-
Thymeleaf:Thymeleaf 是一个现代化的服务器端 Java 模板引擎。它支持 HTML、XML、JavaScript、CSS 和文本模板。通过配置 ThymeleafViewResolver,Spring MVC 可以使用 Thymeleaf 作为模板引擎。
-
Freemarker:Freemarker 是另一个流行的模板引擎,它提供了强大的模板语法和灵活的模板渲染功能。通过配置 FreeMarkerViewResolver,可以在 Spring MVC 中使用 Freemarker。
-
Velocity:Velocity 是一个简洁而高效的模板引擎,它具有简单的语法和丰富的功能。要在 Spring MVC 中使用 Velocity,需要配置 VelocityViewResolver。
-
Mustache:Mustache 是一个逻辑-less 模板引擎,它的设计目标是保持模板语法简洁和易于阅读。Spring MVC 提供了 MustacheViewResolver,可以使用 Mustache 作为模板引擎。
对于以上提到的模板引擎,Spring MVC 都提供了相应的视图解析器,可以在配置文件中进行配置,并根据需要选择合适的模板引擎来使用。根据项目需求和个人偏好,可以选择适合的模板引擎来开发和渲染视图。
1年前 -
-
Spring MVC 支持多种模板引擎,其中包括以下几种:
-
JSP(JavaServer Pages):JSP 是一种常见的模板引擎,它使用类似于 HTML 的语法,并可以在其中嵌入 Java 代码。在 Spring MVC 中,默认的视图解析器会将 JSP 视图解析成 Java 代码并生成相应的 servlet。
-
Thymeleaf:Thymeleaf 是一种现代化的、基于 HTML 的模板引擎,它使用类似于 JSP 的语法,但更加灵活和易于使用。Thymeleaf 的语法具有丰富的功能,包括模板布局、条件判断、循环和表达式。在 Spring MVC 中,可以通过在配置文件中配置 Thymeleaf 视图解析器来使用 Thymeleaf。
-
FreeMarker:FreeMarker 是一种模板引擎,它使用基于文本的模板语法,可以与多个编程语言(包括 Java)集成。在 Spring MVC 中,可以使用 FreeMarker 视图解析器来将 FreeMarker 模板解析成最终的 HTML 页面。
-
Velocity:Velocity 是一种模板引擎,它使用简洁的语法和标记来生成动态内容。在 Spring MVC 中,可以使用 Velocity 视图解析器将 Velocity 模板转化为最终的 HTML 页面。
-
Groovy Markup:Groovy Markup 是一种模板引擎,它使用 Groovy 脚本语言,并且与 Groovy 语法非常相似。在 Spring MVC 中,可以使用 Groovy Markup 视图解析器来解析 Groovy Markup 模板。
总结起来,Spring MVC 支持的模板引擎包括 JSP、Thymeleaf、FreeMarker、Velocity 和 Groovy Markup。开发者可以根据自己的需求和偏好选择合适的模板引擎来进行开发。
1年前 -
-
Spring MVC 支持多种模板引擎,以下是其中几种常用的模板引擎:
- Thymeleaf
- FreeMarker
- Velocity
- JSP(JavaServer Pages)
下面将分别介绍这些模板引擎的使用方法和操作流程。
1. Thymeleaf
Thymeleaf 是一种服务器端 Java 模板引擎,它能够自然地与 Spring MVC 进行整合。
使用 Thymeleaf,首先需要在 Maven 或 Gradle 中添加以下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>然后,在 Spring MVC 的配置文件中配置 Thymeleaf 的视图解析器,例如:
@Configuration public class ThymeleafConfig { @Autowired private ApplicationContext applicationContext; @Bean public SpringResourceTemplateResolver templateResolver() { SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); templateResolver.setApplicationContext(applicationContext); templateResolver.setPrefix("classpath:/templates/"); templateResolver.setSuffix(".html"); return templateResolver; } @Bean public SpringTemplateEngine templateEngine() { SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.setTemplateResolver(templateResolver()); return templateEngine; } @Bean public ViewResolver viewResolver() { ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); viewResolver.setTemplateEngine(templateEngine()); return viewResolver; } }然后,在控制器类中,定义请求处理方法并返回对应的 Thymeleaf 模板文件名,例如:
@Controller public class MyController { @GetMapping("/hello") public String hello(Model model) { model.addAttribute("message", "Hello Thymeleaf!"); return "hello"; } }在
templates目录下,创建hello.html文件:<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <body> <h1 th:text="${message}"></h1> </body> </html>这样,当访问
/hello路径时,将渲染hello.html模板,并将message的值替换到模板中。2. FreeMarker
FreeMarker 是一种流行的模板引擎,它能够生成文本输出。
使用 FreeMarker,首先需要在 Maven 或 Gradle 中添加以下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>然后,在 Spring MVC 的配置文件中配置 FreeMarker 的视图解析器,例如:
@Configuration public class FreeMarkerConfig { @Autowired private ApplicationContext applicationContext; @Bean public FreeMarkerConfigurationFactoryBean freeMarkerConfiguration() { FreeMarkerConfigurationFactoryBean factoryBean = new FreeMarkerConfigurationFactoryBean(); factoryBean.setTemplateLoaderPath("classpath:/templates/"); return factoryBean; } @Bean public FreeMarkerViewResolver viewResolver() { FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver(); viewResolver.setCache(true); viewResolver.setPrefix(""); viewResolver.setSuffix(".ftl"); viewResolver.setContentType("text/html;charset=UTF-8"); return viewResolver; } }然后,在控制器类中,定义请求处理方法并返回对应的 FreeMarker 模板文件名,例如:
@Controller public class MyController { @GetMapping("/hello") public String hello(ModelMap model) { model.addAttribute("message", "Hello FreeMarker!"); return "hello"; } }在
templates目录下,创建hello.ftl文件:<!DOCTYPE html> <html lang="en"> <body> <h1>${message}</h1> </body> </html>这样,当访问
/hello路径时,将渲染hello.ftl模板,并将message的值替换到模板中。3. Velocity
Velocity 是一种基于 Java 的模板引擎,它能够生成文本输出。
使用 Velocity,首先需要在 Maven 或 Gradle 中添加以下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-velocity</artifactId> </dependency>然后,在 Spring MVC 的配置文件中配置 Velocity 的视图解析器,例如:
@Configuration public class VelocityConfig { @Bean public VelocityConfigurer velocityConfigurer() { VelocityConfigurer configurer = new VelocityConfigurer(); configurer.setResourceLoaderPath("classpath:/templates/"); return configurer; } @Bean public ViewResolver viewResolver() { VelocityViewResolver viewResolver = new VelocityViewResolver(); viewResolver.setSuffix(".html"); viewResolver.setContentType("text/html;charset=UTF-8"); return viewResolver; } }然后,在控制器类中,定义请求处理方法并返回对应的 Velocity 模板文件名,例如:
@Controller public class MyController { @GetMapping("/hello") public String hello(Model model) { model.addAttribute("message", "Hello Velocity!"); return "hello"; } }在
templates目录下,创建hello.html文件:<!DOCTYPE html> <html lang="en"> <body> <h1>$message</h1> </body> </html>这样,当访问
/hello路径时,将渲染hello.html模板,并将message的值替换到模板中。4. JSP(JavaServer Pages)
JSP 是一种服务器端 Java 视图技术,它允许开发人员使用 Java 代码和 HTML 标签来创建动态 Web 页面。
使用 JSP,首先需要在 Maven 或 Gradle 中添加以下依赖:
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>然后,在 Spring MVC 的配置文件中配置 JSP 的视图解析器,例如:
@Configuration public class JspConfig { @Bean public ViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/WEB-INF/views/"); viewResolver.setSuffix(".jsp"); return viewResolver; } }然后,在
WEB-INF目录下的views文件夹中,创建hello.jsp文件:<!DOCTYPE html> <html lang="en"> <body> <h1><%= message %></h1> </body> </html>最后,在控制器类中,定义请求处理方法并返回对应的 JSP 文件名,例如:
@Controller public class MyController { @GetMapping("/hello") public String hello(Model model) { model.addAttribute("message", "Hello JSP!"); return "hello"; } }这样,当访问
/hello路径时,将渲染hello.jsp并将message的值替换到页面中。1年前