【问题标题】:How Getmapping gets value from Form usinng spring MVC (thymleaf)?Getmapping 如何使用 spring MVC (thymeleaf) 从 Form 中获取价值?
【发布时间】:2021-01-06 16:59:46
【问题描述】:

我正在使用带有 Thymeleaf 的 Spring MVC 进行简单的表单提交。 我无法正确理解这部分代码 (model.addAttribute("greeting", new Greeting());)

is "greeting" 这个问候是 Greeting 类的对象还是 别的东西..模型对象是否意味着表单提交的视图?

我正确吗:在加载提交表单时,通过调用 greetingForm 方法并单击提交按钮使用@GetMapping 实例化一个问候对象,它只是将存储在文本框中的属性值加载到对象并存储在服务器中并在结果上显示结果页面。
@控制器 公共类 GreetingController {

  @GetMapping("/greeting")
  public String greetingForm(Model model) {
    model.addAttribute("greeting", new Greeting());
    return "greeting";
  }

  @PostMapping("/greeting")
  public String greetingSubmit(@ModelAttribute Greeting greeting) {
    return "result";
  }

//结果页面

<body>
    <h1>Result</h1>
    <p th:text="'id: ' + ${greeting.id}" />
    <p th:text="'content: ' + ${greeting.content}" />
</body>

//表单提交

<body>
    <h1>Form</h1>
    <form action="#" th:action="@{/greeting}" th:object="${greeting}" method="post">
        <p>Id: <input type="text" th:field="*{id}" /></p>
        <p>Message: <input type="text" th:field="*{content}" /></p>
        <p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
    </form>

【问题讨论】:

    标签: spring-mvc thymeleaf


    【解决方案1】:

    这里的模型对象代表表单支持对象。表单中的数据必须被收集并包装到一个对象中。因此,在将表单呈现给用户之前,我们让 Spring MVC 使用这个空的 Greeting 对象。

    如果您已按如下方式设置模型对象,这些值将预先填充到表单中。

    model.addAttribute("greeting", new Greeting(1,"This is the content"));
    

    【讨论】:

    • 所以这个双重代码中的“问候”在我的代码中是一个空对象,它也可以是任何其他名称。而且我必须使用这个名称来获取属性值 ....就像从我的结果页面中一样 --greeting.id 来获取 id 值。
    • 是的,非常类似于 java 对象名称。
    猜你喜欢
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多