任何人都可以解释 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>
答案 0 :(得分:1)
以下所有内容均可在此Getting Started页面中找到。
从第一眼看,我会说<form>
模板会在您提交时以POST
调用方式呈现为标准表单。
它不仅仅是简单的http / html。框架添加的是表单字段动态绑定到基础对象,由th:Object="${messageForm}"
属性引用。
计算每个字段,使用messageForm
语法调用th:field="*{password}"
对象上的方法。
最后,对通过评估th:action="@{/new}"
属性创建的URL进行POST调用,可能相对于当前页面。
让我们举个例子来澄清 假设我们有
messageForm
的对象MessageForm
,其属性为user
的String
类型password
String
"http://my.app.com/login"
通过提交按钮可能会得到的是,messageForm
对象的属性user
和password
设置为您在表单的相应字段中放置的值,而不是表单将调用"http://my.app.com/new"
页面或类似页面,传递messageForm
对象,从中检查登录操作的凭据...
如果您还没有,我强烈建议您在继续之前阅读thymeleaf网站上的documentation。
答案 1 :(得分:1)
<form>
模板会在您提交时以POST
调用方式呈现为标准表单
框架添加的是表单字段动态绑定到基础对象,由th:Object="${messageForm}"
属性引用。
计算每个字段,使用messageForm
语法调用th:field="*{password}"
对象上的方法。
最后,POST
调用通过评估th:action="@{/new}"
属性创建的URL,可能相对于当前页面。