Freemarker和webflux错误

问题描述 投票:0回答:1

[当我在webflux应用中使用freemarker时,总是会遇到一个例外:无法解析名称为'';;的视图]

我的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

stacktrace:stacktrace

主路由器:

@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();
                });
            });

        });
    }
}
java spring freemarker
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.