Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

本文主要是介绍Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们需要引入包:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency><groupId>ognl</groupId><artifactId>ognl</artifactId><version>3.2.10</version><scope>test</scope>
</dependency>

我们首先创建Thymeleaf模版:index.html

<!DOCTYPE html>
<html lang="en"  xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>Title</title></head><body><h1 th:text="${title}">Hello World</h1></body>
</html>

然后我们再编写输出静态网页的方法:TstToHtml

package com.kingbal.tohtml.test;import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;import java.io.File;
import java.io.FileWriter;
import java.io.IOException;/*** <b>Function: </b> todo** @program: TstToHtml* @Package: com.kingbal.tohtml.test* @author: songjianlin* @date: 2024/09/06* @version: 1.0* @Copyright: 2024 www.kingbal.net Inc. All rights reserved.*/
public class TstToHtml {public static void main(String[] args) throws IOException {ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();resolver.setPrefix("templates/");  //模板文件的所在目录resolver.setSuffix(".html"); //模板文件的后缀resolver.setTemplateMode(TemplateMode.HTML);//创建模板引擎对象TemplateEngine templateEngine = new TemplateEngine();//将加载器放入模板引擎对象中templateEngine.setTemplateResolver(resolver);String path = "D:\\git\\html";File file=new File(path);if(!file.exists()){file.mkdir();}FileWriter writer = new FileWriter(file.getPath() + "\\index.html");//创建Context对象(存放Model)Context context = new Context();context.setVariable("title", "测试列表");templateEngine.process("index", context, writer);}
}

当我们运行的时候出现错误,找了很多资料,说什么版本的问题,其实都试了没用

Exception in thread "main" java.lang.NoClassDefFoundError: ognl/PropertyAccessorat org.thymeleaf.standard.StandardDialect.getVariableExpressionEvaluator(StandardDialect.java:178)at org.thymeleaf.standard.StandardDialect.getExecutionAttributes(StandardDialect.java:392)at org.thymeleaf.DialectSetConfiguration.build(DialectSetConfiguration.java:263)at org.thymeleaf.EngineConfiguration.<init>(EngineConfiguration.java:123)at org.thymeleaf.TemplateEngine.initialize(TemplateEngine.java:341)at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1084)at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072)at com.kingbal.tohtml.test.TstToHtml.main(TstToHtml.java:50)
Caused by: java.lang.ClassNotFoundException: ognl.PropertyAccessorat java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)... 8 more 

解决这个问题主要是在 TemplateEngine 实例化的时候需要基于spring,所以在创建模版引擎的时候实例化 SpringTemplateEngine 即可

//创建模板引擎对象
TemplateEngine templateEngine = new SpringTemplateEngine();

这样就可以成功生成静态网页了~~~

这篇关于Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1150464

相关文章

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

java如何解压zip压缩包

《java如何解压zip压缩包》:本文主要介绍java如何解压zip压缩包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解压zip压缩包实例代码结果如下总结java解压zip压缩包坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2