繁体   English   中英

使用请求参数将 javascript 变量传递给 spring MVC controller

[英]Passing javascript variable to spring MVC controller with request param

是否可以将 javascript 变量发送到 controller 端点,然后让 controller 返回新视图? 我尝试使用 requestbody 和 ajax 来执行此操作,它正确传递了变量,但无法加载新视图。

也许有办法用 thymeleaf 做到这一点?

如果您使用的是 Thymeleaf,那么只需通过文件名引用您想要返回给用户的模板。

@Controller
public class YourController {

    @GetMapping("/someUrl")
    public String getTemplate(@RequestParam String templateName){
        return templateName;
    }
}

这将是您需要的最低限度,假设您的模板位于正确的文件夹中 - 默认情况下位于resources/static中。 如果前端向后端发送GET (/someUrl?templateName=xyz) ,它将从您的模板中返回xyz.html 如果它没有找到参数中请求的模板,那么它将返回 404。

编辑:阅读评论后,我意识到@RequestParam@PathVariable之间可能存在混淆。 如果您想使用路径变量来定义模板名称,以便前端可以调用GET (/someUrl/xyz) ,那么您可以这样做

@Controller
public class YourController {

    @GetMapping("/someUrl/{templateName}")
    public String getTemplate(@PathVariable String templateName){
        return templateName;
    }
}

以下两者的资源:

https://www.baeldung.com/spring-request-param

https://www.baeldung.com/spring-pathvariable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM