Spring MVC thymeleaf不更新一个模型值在我的模板后,一个职位

lxkprmvk  于 2023-02-09  发布在  Spring
关注(0)|答案(2)|浏览(167)

我有一个名为
@会话属性(“我的新属性”)
这是在我的控制器的顶部定义的。当我点击我的第二个端点,post,值不会在thymleaf中从空白更新为显示字符串,但它会将其打印到我的控制台。我有点疯了。以下是我的控制器文件和模板:

@Controller
@SessionAttributes("myNewAttribute")
public class SpringFileController {
@GetMapping("/pageone")
    public String displayPageOne(Model model) {

        return "pageone";
    }

    @PostMapping("/clickedsavebutton")
    public String handleSaveButton(Model model){
        model.addAttribute("myNewAttribute","catnip");

        String valueToDisplay = (String)model.getAttribute("myNewAttribute");
        System.out.println(valueToDisplay);

        return "pageone";
    }
}

我的模板

<p th:text="${myNewAttribute}"></p>

<!--the save button, other things, wtc.. -->

所以在我的控制台中,当我点击保存时,我得到了“猫薄荷”,但“猫薄荷”并没有显示在页面上,直到我刷新页面。
edit:我在模板中的post调用后添加了window.location.reload(),使属性显示出来,但是如果我这样做的话,我会丢失页面上已经更改的其他内容

cngwdvgl

cngwdvgl1#

这是预期行为,Thymeleaf是一个呈现引擎,因此在页面初始加载后无法更改内容。
为了得到想要的效果,你必须重新加载(部分)你的网页。这可以是一个完整的刷新或刷新一个div或字段使用类似 AJAX /javascript。

kmbjn2e3

kmbjn2e32#

我添加了$(“#所需字段div”).load(窗口.位置.href +“#所需字段div”);到我的功能上的保存按钮,并得到了这个工作。谢谢所有的帮助!

相关问题