gpt4 book ai didi

java - Thymeleaf:从 Spring-MVC Controller 重定向时,thymeleaf 不反射(reflect)新值

转载 作者:太空宇宙 更新时间:2023-11-04 14:07:10 26 4
gpt4 key购买 nike

我是 thymeleaf 的新手,thymeleaf 模板引擎非常好,但我面临一些关键问题,这对我来说很难弄清楚。我的流程如下:

首先调用添加用户 Controller 并将新用户添加到数据库中。保存新用户后,重定向到用户列表页面。当用户列表页面打开时,我的新用户不会显示在用户列表中。刷新页面后,我的新用户可见。当我调试代码并检查用户列表 Controller 时。用户列表 Controller 获取新的用户详细信息,但我的 thymeleaf 不显示新的更改。我的 thymeleaf 缓存也是错误的。我正在使用 thymeleaf 布局方言,如下所示:

https://github.com/ultraq/thymeleaf-layout-dialect

我的 Controller 代码:

@RequestMapping(value="/add-user", method=RequestMethod.POST)
public String addEditCategory(User user, RedirectAttributes attributes) {

userService.saveNewUser(user);
return "redirect:/user/userlist";
}

@RequestMapping(value="/userlist", method=RequestMethod.GET)
public String productCategory(Model model, Pageable pageable) {

Page<User> page = productCategoryService.findAllUsers(pageable);
List<User> users= page.getContent();
PageWrapper<ProductCategory> pageWrapper = new PageWrapper<User>(page, "/user/userlist");

model.addAttribute("page", pageWrapper);
model.addAttribute("users", categories);
return "admin/user/view-users";
}

我的 Thymeleaf 配置:

/* Thymeleaf configuration */
private ServletContextTemplateResolver templateResolver() {
ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();

templateResolver.setPrefix("/WEB-INF/views/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("HTML5");
templateResolver.setCacheable(false);

return templateResolver;
}

private SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addDialect(new LayoutDialect());
templateEngine.setTemplateResolver(templateResolver());
return templateEngine;
}

private ThymeleafViewResolver thymeleafViewResolver() {
ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver();

thymeleafViewResolver.setCharacterEncoding("UTF-8");
thymeleafViewResolver.setViewClass(ThymeleafView.class);
thymeleafViewResolver.setViewNames(new String[]{"user/**"});
thymeleafViewResolver.setTemplateEngine(templateEngine());
return thymeleafViewResolver;
}

我正在使用 ContentNegotiatingViewResolver 来注册 View 解析器。这个问题就像缓存问题。但我该如何解决这个问题呢?

更新

添加用户:- 单击按钮,将会出现 fancybox。在花式框中,我使用表单并在 /add-user url 上提交表单。

更新

ContentNegotiatingViewResolver 代码:

@Bean
public ViewResolver setupViewResolver(ContentNegotiationManager manager) {
List<ViewResolver> resolvers = new ArrayList<ViewResolver>();

resolvers.add(tilesViewResolver());
resolvers.add(thymeleafViewResolver());
resolvers.add(jspViewResolver());

ContentNegotiatingViewResolver viewResolver = new ContentNegotiatingViewResolver();
viewResolver.setViewResolvers(resolvers);
viewResolver.setContentNegotiationManager(manager);
return viewResolver;
}

最佳答案

要禁用缓存,请添加 -

thymeleafViewResolver.setCache(false);

关于java - Thymeleaf:从 Spring-MVC Controller 重定向时,thymeleaf 不反射(reflect)新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28741793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com