gpt4 book ai didi

java - Freemarker 和 webflux 错误

转载 作者:行者123 更新时间:2023-12-01 17:17:30 24 4
gpt4 key购买 nike

当我在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com