谁能在以下代码中解释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
对象将其属性user
和password
设置为您在表单的相应字段中输入的值,然后表单将调用"http://my.app.com/new"
页面或类似方法,传递messageForm
对象,从该对象检查登录操作的凭据...
如果您还没有,我强烈建议您在继续之前阅读百里香叶网站上的documentation。