2

谁能解释一下thymeleaf的提交按钮在以下代码中是如何工作的?

 <!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>
4

2 回答 2

1

以下所有内容都可以在此入门页面中找到。

乍一看,我会说<form>模板被呈现为标准表单,POST并在您提交时进行调用。

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

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

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


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

  • 具有属性messageForm的类型对象MessageForm
  • user类型String
  • password类型String
  • 模板正在呈现为带有 url 的网页"http://my.app.com/login"

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


如果您还没有,我强烈建议您在继续之前阅读 thymeleaf 网站上的文档。

于 2013-03-21T08:54:43.670 回答
1

<form>模板被呈现为标准表单,POST并在您提交时进行调用。
框架添加的是表单字段动态绑定到由th:Object="${messageForm}"属性引用的底层对象。

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

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

于 2013-05-14T09:01:04.917 回答