谁能在以下代码中解释thymeleaf的Submit按钮如何工作?

 <!DOCTYPE html>
 <html lang="en" xmlns:th="http://www.thymeleaf.org"

  layout:decorator="master">
<head>
    <title>LoginPage</title>
</head>

<body>
 <h1>Login Page</h1>
<!-- Any content you put in the div fragment below will appear on the page-->
<div class="container">
<div class="row">
    <div class="span8">

    <P th:if="${loginError}" >Wrong User or Password</P>

        <form th:action="@{/new}" th:Object="${messageForm}"
                    method="post">
        <label for ="User">User Name</label>
        <input type="text" th:field="*{user}"/><br/>
        <label for ="password">Password</label>
        <input type="password"  th:field="*{password}"/><br/>
        <input type="submit" value="Login" />
        </form>

        </div>
</div>
</div>
 </body>
 </html>

最佳答案

后面的所有内容都可以在此Getting Started页中找到。

乍一看,我想说<form>模板在提交时通过调用POST呈现为标准形式。

它只不过是纯http / html。该框架添加的是表单字段动态绑定到由th:Object="${messageForm}"属性引用的基础对象。

计算每个字段,并使用messageForm语法调用th:field="*{password}"对象上的方法。

最后,对通过评估th:action="@{/new}"属性(可能相对于当前页面)创建的URL进行POST调用。



让我们举个例子来澄清。
假设我们有


具有属性的messageForm类型的对象MessageForm
user类型的String
password类型的String
模板被渲染为带有url "http://my.app.com/login"的网页


提交按钮后可能会得到的结果是,messageForm对象将其属性userpassword设置为您在表单的相应字段中输入的值,然后表单将调用"http://my.app.com/new"页面或类似方法,传递messageForm对象,从该对象检查登录操作的凭据...



如果您还没有,我强烈建议您在继续之前阅读百里香叶网站上的documentation

10-08 03:00