【发布时间】:2022-01-11 06:47:45
【问题描述】:
是否可以将 javascript 变量发送到控制器端点,然后让控制器返回一个新视图? 我试过使用 requestbody 和 ajax 来做,它可以正确传递变量,但无法加载新视图。
也许有一种方法可以用百里香来做到这一点?
【问题讨论】:
-
@RequestParam 可用于传递值。也许您可以分享更多信息和一些代码,以便更好地了解您面临的问题。
-
我有一个控制器方法,我希望从 javascript 函数中传递一个变量。 ``` @GetMapping("/project/task") public String test(@RequestParam long id) { // 从任务 id 创建模型,并转到新的视图页面 return "taskpage"; } ``` 当点击一个任务(来自谷歌图表 api 的甘特图)时,javascript 函数会检索变量(任务 ID)。 ``` $.ajax({ contentType: "application/json", type: "GET", data: taskId url: "/project/task/"+id, }); } ``` 没有requestbody(它不会加载新页面)是行不通的
-
从 Javascript 你在 url 中传递 id。所以你可以使用@PathVariable 在控制器中获取它。 @GetMapping(“project/task/{id}”) public String test(@PathVariable Long id)
-
@Cozimetzer 这几乎可以工作,除了它仍然不会加载新的 html 页面,而是保持在同一页面上.. 嗯..
标签: javascript java spring spring-boot thymeleaf