Как я могу вернуться на страницу HTML из обработчика WebFlux - PullRequest
0 голосов
/ 20 марта 2020

У меня есть веб-приложение webflux. Я пытаюсь перейти на страницу html, как только обработчик завершит работу. У меня есть следующий код. Это легко сделать?

Маршрутизатор

@Configuration
class WebRouter(val handler: Handler) {

    @Bean
    fun route() = router {
        accept(MediaType.APPLICATION_JSON).nest {
        GET("/fixing_check", handler::check_fixing).also { GET("/best", handler::anotherHandler) }
        }
    }

}

Обработчик

fun check_fixing (serverRequest: ServerRequest): Mono<ServerResponse>{
        .....
        return ServerResponse.ok().contentType(MediaType.APPLICATION_JSON).body(
            Flux.fromStream(tocList.stream()).log(), FixingData::class.java
    )
}

Конфигурация для stati c data

@Configuration
class WebConfiguration {

    @Bean
    fun resRouter() = resources("/**", ClassPathResource("static/"))

}

Спасибо за любая помощь!

Ответы [ 2 ]

0 голосов
/ 22 марта 2020

Спасибо за обновление выше. Я пришел к выводу об этом с помощью следующего кода:

@Component
class Handler {

    val testList = listOf("String1", "String2", "String3")

    fun checkSomething(severRequest: ServerRequest): Mono<ServerResponse> {
        return ServerResponse.ok().contentType(MediaType.APPLICATION_JSON).body(
                Flux.fromIterable(testList), String::class.java
        ).then(ServerResponse.temporaryRedirect(URI("/test_thymeleaf.html")).build())
    }

}

Теперь обработчик переходит на страницу html! Это здорово.

Спасибо за помощь

0 голосов
/ 20 марта 2020

Вы можете обновить настройки маршрутизатора для перенаправления после завершения обработки, используя оператор then():

@Configuration
class WebRouter(val handler: Handler) {

  @Bean
  fun route() = router {
    accept(MediaType.APPLICATION_JSON).nest {
      GET("/fixing_check") { _ -> handler::check_fixing.then(ServerResponse.temporaryRedirect(URI.create("/best")).build()) } }
      GET("/best") { _ -> handler::anotherHandler }
    }
  }
}
...