gpt4 book ai didi

spring - @PathVariable 和@ModelAttribute 的区别

转载 作者:行者123 更新时间:2023-12-02 17:27:43 24 4
gpt4 key购买 nike

我对 SpringFramework 中的 @PathVariable 和 @ModelAttribute 感到困惑。我能知道它们之间有什么区别吗?

最佳答案

1) @PathVariable

Annotation which indicates that a method parameter should be bound to a URI template variable

例如:你有一个像这样的 URL http:/myweb/transferfund/john/john123

@RequestMapping(value = "/transferfund/{user}/john123")
public String index(@PathVariable String user){
System.out.println("Logged User :"+user);
}

基于上面的示例,您可以使用 @PathVariable 从 URI 获取变量,在这种情况下将打印出 john。您也可以像这样获取 URI 的另一部分;

@RequestMapping(value = "/transferfund/john/{userID}")
@RequestMapping(value = "/{transaction}/john/john123")

你甚至可以这样做:

@RequestMapping(value = "/{transaction}")

这将捕获任何没有自己的 @RequestMapping

的 URl

2) @ModelAttribute

Annotation that binds a method parameter or method return value to a named model attribute, exposed to a web view

例如:你有一种形式:

<form:form action="/addUser" modelAttribute="userInfo">
<form:input path="name" value="John Doe">
<form:input path="id" value="john123">
</form:form>

在你的@RequestMapping

 @RequestMapping(value = "/addUser")
public String index(@ModelAttribute("userInfo") User userinfo){
System.out.println("Registered User :"+userinfo.getUserName());
}

基于这个例子,系统会打印出Registered User : John Doe但是你需要这个 spring taglib 来使用 @ModelAttribute :

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

玩得开心。

关于spring - @PathVariable 和@ModelAttribute 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37315329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com