百里香提交按钮代码

时间:2013-03-21 04:04:30

标签: java maven thymeleaf

任何人都可以解释 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>

2 个答案:

答案 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对象的属性userpassword设置为您在表单的相应字段中放置的值,而不是表单将调用"http://my.app.com/new"页面或类似页面,传递messageForm对象,从中检查登录操作的凭据...


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

答案 1 :(得分:1)

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

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

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