我有一个带有Thymeleaf的Spring-boot Java应用程序。当根网页访问后,将从该控制器显示一个带有表单的页面。
@Controller
@Scope("session")
public class AController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String queryForm(Model model) {
model.addAttribute("query", new Query());
System.out.println("added query to model");
return "question_page";
}
@RequestMapping(value = "/", method = RequestMethod.POST)
public String querySubmit(@ModelAttribute Query query) {
System.out.println("button pressed");
return "result";
}
}
表单如下所示。在填写表单并单击submit时。我希望前面创建的查询是从模型中传递的,即带有设置内容的请求映射器。但这似乎是一个不同的查询,因为它具有不同的内存地址。
<div clas="queryFrom">
<form action="#" th:action="@{/}" th:object="${query}" method="post"
class="embed-submit-field">
<input type="text" th:field="*{content}" id="query" list="suggestions" autocomplete="off"
class="inputField"/>
<button type="submit" value="Submit" id="submitButton" class="btn">
<i class="material-icons">search</i>
</button>
</form>
</div>
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String trigger_reload(@ModelAttribute Query query) {
System.out.println(query.getContent()); // content is null
return "result";
}
我不确定我做错了什么。欢迎任何建议。
这个问题被标记为另一个问题的可能重复。我只是想确定一下这些问题是完全不同的。从Thymeleaf将内容字段设置为正确。问题是,我没有从我的模型中获得设置字段的查询类的实例。完全不同的问题!
我自己想出来的。我只需要将model属性添加到会话中,否则它就会丢失。我刚将@sessionattributes({“query”})
添加到类的顶部,就解决了我的问题。
我不知道这是一个已知的问题还是一个预期的特性,但我发现了一个有趣的问题。 对吧?基本的东西。 然而,当我试图摆弄这段代码时,发生了一个有趣的情况。我们保持计数器作为一个字段属性和其他一切完整。唯一的区别是,在中,我将在上添加一个: 这一次,This.counter更新,就好像它处于状态一样!
As we learned earlier in the book, the validate method on a Model is called before set and save, and is passed the model attributes updated with the values from these methods. By default, where we def
如本文所述,缩进有一个ESLint属性,名为。示例如下所示: 或对于选项卡式缩进: 但是,如果我将这个确切的代码粘贴到我的文件中,VS Code将显示为错误: ESLint:. eslintrc中的ESLint配置无效:-意外的顶级属性"indent"...有关详细信息,请参阅ESLint输出通道。 我以前拥有的文件已经有很多规则,并且没有打印出错误。如果我将添加到该列表中,或者单独添加,它将失败
我有一个具有登录功能的控制器类。当我输入用户名和密码并按submit时,它将调用此控制器并在会话中存储客户信息。但有一件事让我感到困惑,那就是@model属性 我将使用@ModelAttribute Customer存储我输入的用户名和密码,并使用Customer c存储我从customService获得的所有信息,并将其存储到会话中。但是会话存储的是客户。 如果我这样改变论点。它工作正常
模型和一些关联具有一个或多个属性,每个属性有类型以及一些可选设置,你可以自行选择它们(或使用默认设置)。 类型 受支持的类型是: text:文本字符串; number:浮点数。你可以指定size为2 | 4 | 8; integer:整数。你可以指定size为2 | 4 | 8; boolean:true或false的值; date:日期对象。你可以指定time为true; enum:一个备选列表
以前我使用过的ORM将数据库列直接映射到类属性,这允许您查看特定的属性可见性,就像您通常会限制对某些属性(例如密码)的访问一样。 有了雄辩,我似乎无法复制这一点,因为数据库列映射到不包含可见性的内部属性数组。 我的愿望是将用户密码的访问范围仅限于对象,即私有。 设置具有可见性的类属性不起作用,因为该属性超出了雄辩模型属性的范围,因此该属性未映射到列。 雄辩的$隐藏和$保护属性不起作用,因为它们处理