Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何防止同一模型的多个实例_Java_Spring_Thymeleaf - Fatal编程技术网

Java 如何防止同一模型的多个实例

Java 如何防止同一模型的多个实例,java,spring,thymeleaf,Java,Spring,Thymeleaf,我想知道如何防止同一型号的多个实例出现在Thymeleaf中,例如:在标题上显示用户名 <span th:text="${username}">User Name</span> Spring允许您执行以下操作: @ModelAttribute("username") public String username() { return "User Name"; } 这段代码将为每个由封闭控制器处理的请求设置一个“username”属性。您还可以访问几乎所有@Re

我想知道如何防止同一型号的多个实例出现在Thymeleaf中,例如:在标题上显示用户名

<span th:text="${username}">User Name</span>

Spring允许您执行以下操作:

@ModelAttribute("username")
public String username() {
    return "User Name";
}
这段代码将为每个由封闭控制器处理的请求设置一个“username”属性。您还可以访问几乎所有@RequestMapping方法可用的参数,包括模型对象本身

如上面的注释所述,如果您希望在特定用户的请求中保留某些对象(例如,从数据库获取该对象并用该实例填充模型),则可以创建@SessionAttributes处理程序或手动将该对象放入会话中


似乎可以从问题中删除“thymeleaf”标记

您可以将用户名放在会话中,并可以在thymeleaf中访问它,从而避免重复代码。感谢您的回复!正如您在截取的代码中所显示的,用户名模型属性将始终是“用户名”,不是吗?所以我认为@Apollo solutions更灵活。你怎么想?这取决于你的需要。只有两种选择。ModelAttribute处理程序将在每个请求上调用。如果您想在特定用户(会话)的请求之间持久化某个对象,那么您可以使用@SessionAttributes,或者只是手动将该对象放入会话中。如果您正在设置登录用户的用户名,那么(很可能)该用户本身已经在会话中,对吗?
@ModelAttribute("username")
public String username() {
    return "User Name";
}