gpt4 book ai didi

java - 努力理解Spring MVC模型和具体的 Controller 方法

转载 作者:行者123 更新时间:2023-11-30 03:02:58 24 4
gpt4 key购买 nike

我在基于 Spring 的 Java 应用程序中遇到了以下代码。

这是 Controller :

@RequestMapping(value="/plants/form")
public String form(Model model){
model.addAttribute("plant", new Plant());
return "plants/create";
}

我对这段代码有几个疑问。

  1. 我知道form请求 /plants/form 时调用方法,但我想知道哪个方法调用 form并向其传递参数?
  2. 对我来说,模型就像一个数据库。所以,看起来像 model.addAttribute("plant", new Plant());创建 Plant实例并使其可以在名为 plant 的模型中进行访问。因此,模型的一个属性似乎是像field之类的东西在数据库中。 具体含义是什么模型的属性?
  3. 什么是value@RequestMapping(value="/plants/form")以及什么是上述符号和 @RequestMapping("/plants/form")
  4. 考虑这个不完整的 HTML 片段:

    <form class="form-horizontal" role="form" th:object="${plant}" th:method="post" th:action="@{/plants}">
    <div class="form-group">
    <label for="name" class="col-sm-2 control-label">Name</label>
    <input type="text" th:field="*{name}"></input>
    </div>
    </form>

    $, *, @是什么意思在"${plant}" , "*{name}""@{/plants}" 。我不太清楚。

最佳答案

1)如果我正确理解你的问题,那么 Spring MVC DispatcherServlet负责根据配置的 HandlerMapping/HandlerAdapter 将请求路由到您的处理程序方法。

2)模型是MVC中的M,它与关系数据库没有任何共同之处。而是将其视为 String 键到 Object 值的 Map。 Spring MVC 模型属性存储在底层的请求范围中。

3)没有区别,value@RequestMapping注解的属性。当您想传递单个 value 参数而不传递其他参数时,可以按照约定省略 value

4) 这些是 Thymeleaf StandardSpringStandard 方言的标签和属性。更多信息here .

关于java - 努力理解Spring MVC模型和具体的 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35476870/

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