我正在使用自定义UrlTemplateResolver来解析远程主机上的Thymeleaf模板。在浏览器中设置的Cookie不会与模板解析请求一起发送。我正在寻找一种可能的解决方法,以可能通过UrlTemplateResolver解决请求发送cookie。
添加到SpringTemplateEngine的我的UrlTemplateResolver:
@Bean public UrlTemplateResolver urlTemplateResolver()
{
UrlTemplateResolver urlTemplateResolver = new UrlTemplateResolver();
urlTemplateResolver.setCharacterEncoding( "UTF-8" );
urlTemplateResolver.setTemplateMode( "HTML5" );
urlTemplateResolver.setCacheable( false );
urlTemplateResolver.setOrder( 1 );
return urlTemplateResolver;
}
我的index.html文件中调用远程百里香片段的部分:
<div th:replace="http://localhost:8080/ui-service/header.html :: [//nav[@id='shared-navbar']]"/>
从UrlTemplateResolver捕获请求的Servlet :(这是我需要访问cookie数据的地方)
@GetMapping("/header.html")
public String exposeHeader(HttpServletRequest request, Model model){
//Cookie cookie = request.getCookies() -> is null
return "fragments/navbar.html";
}
例如,如果我在浏览器中输入http://localhost:8080/ui-service/header.html,则可以看到Cookie是在调试器中发送的。但是,当请求由UrlTemplateResolver发送时,没有cookie。