Когда я использую freemarker в приложении webflux, я всегда получаю одно исключение: не могу разрешить представление с именем '';
My FreemarkerConfig:
@Bean
public FreeMarkerConfigurer freeMarkerConfigurer() {
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
configurer.setTemplateLoaderPaths("classpath:/src/main/resources/templates");
return configurer;
}
ViewResolver:
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.freeMarker().suffix(".ftl");
}
classpath: my classpatg
трассировка стека: трассировка стека
mainrouter:
@Configuration
public class MainRouter {
@Bean
public RouterFunction<ServerResponse> route(MainHandler mainHandler){
RequestPredicate get = RequestPredicates.GET("/news");
return RouterFunctions.route(get, mainHandler::news);
}
}
mainhandler:
@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();
});
});
});
}
}