java - Freemarker 和 webflux 错误

标签 java spring freemarker

当我在 webflux 应用程序中使用 freemarker 时,我总是遇到一个异常:无法解析名称为“”的 View ;

我的 FreemarkerConfig:

@Bean
public FreeMarkerConfigurer freeMarkerConfigurer() {
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
    configurer.setTemplateLoaderPaths("classpath:/src/main/resources/templates");
    return configurer;
}  

View 解析器:

@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
    registry.freeMarker().suffix(".ftl");
}

类路径: my classpatg

堆栈跟踪: stacktrace

主路由器:

@Configuration
public class MainRouter {

    @Bean
    public RouterFunction<ServerResponse> route(MainHandler mainHandler){

        RequestPredicate get = RequestPredicates.GET("/news");

        return RouterFunctions.route(get, mainHandler::news);
    }
}

主处理程序:

@Component
public class MainHandler {

    private Logger logger = LoggerFactory.getLogger(MainHandler.class);

    @Autowired
    private UserService userService;

    public Mono<ServerResponse> news(ServerRequest serverRequest) {

        Mono<? extends Principal> principal = serverRequest.principal();

        return principal.flatMap(p -> {

            logger.info(p.getName());

            return userService.findByUserName(p.getName()).flatMap(user -> {
                return ServerResponse.ok().render("news", Map.of("currentUser", user, "messages", userService.findMessages(user)))
                        .onErrorResume(error->{
                    logger.info(error.getLocalizedMessage());
                    return ServerResponse.badRequest().build();
                });
            });

        });
    }
}

最佳答案

我想应该是 "classpath:/templates" 当您构建项目时,/src/main/resources/ 部分就消失了,就像输出jar 将在存档根目录下直接包含 templates 目录。

关于java - Freemarker 和 webflux 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61354042/

相关文章:

spring - 不允许在共享 EntityManager 上创建事务 - 使用 Spring 事务或 EJB CMT

java - 检查给定 UUID 的节点是否存在

java - 自从更改 SpringBoot 依赖性以来,在空字段上加入时出现 Freemarker 错误

java - 如何在关闭它并将其写入磁盘之前获取 ParquetWriter 对象的内存大小?

java - 如何在 Java 中处理和解析包含混合内容的文本文件

Spring Boot WebFlux 测试未找到 MockMvc

java - Spring Data JPA 没有类型合格的 bean ... 找到依赖项

Liferay Assets 发布者条目变量在 adt 中分配给自身

java - 无法从 Thymeleaf 表单将值发布到 HTTP 请求

java - 如何将时间戳字符串转换为纪元时间?