¿Es posible enviar una variable javascript a un punto final del controlador y luego hacer que el controlador devuelva una nueva vista? Intenté usar un cuerpo de solicitud y ajax para hacerlo, lo que pasa la variable correctamente, pero no puede cargar una nueva vista.
¿Tal vez hay una manera de hacerlo con thymeleaf?
Si está utilizando Thymeleaf, simplemente haga referencia a la plantilla que desea devolver al usuario por su nombre de archivo.
@Controller public class YourController { @GetMapping("/someUrl") public String getTemplate(@RequestParam String templateName){ return templateName; } } Esto sería lo mínimo que necesitaría, suponiendo que sus plantillas estén en la carpeta correcta, de forma predeterminada en resources/static . Si el frontend envía un GET (/someUrl?templateName=xyz) al backend, devolvería el xyz.html de sus plantillas. Si no encuentra la plantilla que se solicitó en los parámetros, devolverá un 404.
Editar: Al leer los comentarios, me di cuenta de que podría haber una confusión entre @RequestParam y @PathVariable . En caso de que desee utilizar una variable de ruta para definir el nombre de la plantilla, de modo que la interfaz pueda llamar a GET (/someUrl/xyz) , puede hacerlo
@Controller public class YourController { @GetMapping("/someUrl/{templateName}") public String getTemplate(@PathVariable String templateName){ return templateName; } }Recursos para ambos a continuación: