问题描述
我将按照以下教程逐步完成10号渲染模板片段。
https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#rendering-template-fragments
我得到一个异常:嵌套异常是java.lang.IllegalArgumentException:属性'locale'是必需的。
WebConfig.java
public class WebConfig implements WebMvcConfigurer {
@Autowired
private WebApplicationContext context;
@Bean
public ServletContextTemplateResolver templateResolver() {
final ServletContextTemplateResolver resolver = new ServletContextTemplateResolver(context.getServletContext());
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".html");
resolver.setTemplateMode(TemplateMode.HTML);
return resolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
return templateEngine;
}
@Bean
public ThymeleafViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
return viewResolver;
}
@Bean("messageSource")
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasenames("lang/messages");
messageSource.setdefaultencoding("UTF-8");
return messageSource;
}
@Bean
public LocaleResolver localeResolver() {
return new CookieLocaleResolver();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
registry.addInterceptor(localeChangeInterceptor);
}
@Bean(name = "content-part")
@Scope("prototype")
public ThymeleafView someViewBean() {
ThymeleafView view = new ThymeleafView("index"); // templateName = 'index'
view.setMarkupSelector("content");
return view;
}
}
HomeController.java
public class HomeController {
@RequestMapping("/showContentPart")
public String showContentPart(final Locale locale,HttpServletRequest request,HttpServletResponse response) {
return "content-part";
}
}
index.html https://i.stack.imgur.com/WOGpR.png
解决方法
尝试一下:
@RequestMapping(“ / showContentPart”)
公共类HomeController { public String showContentPart(最终语言环境,HttpServletRequest请求,HttpServletResponse响应){ 返回“内容部分”; }