Umstellung auf Thymeleaf: Schritt 3 - Versucht, das Projet umzustellen
[website] / src / main / java / de / juplo / branding / web / ForceIncludeFilter.java
1 package de.juplo.branding.web;
2
3 import java.io.IOException;
4 import javax.servlet.Filter;
5 import javax.servlet.FilterChain;
6 import javax.servlet.FilterConfig;
7 import javax.servlet.ServletException;
8 import javax.servlet.ServletRequest;
9 import javax.servlet.ServletResponse;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import org.apache.tiles.servlet.context.ServletUtil;
13
14
15
16 /**
17  * Fixes a logic-bug in the colaboration of Thymeleaf and Tiles.
18  *
19  * Tiles 2.2.x tries to use RequestDispatcher.forward() whenever possible, but
20  * this breaks Thymeleaf, because the original response is marked as committed,
21  * when forwarding. Hence, Thymeleaf cannot render its result in the response
22  * and an empty page is returned.
23  * 
24  * @author kai
25  */
26 public class ForceIncludeFilter implements Filter
27 {
28
29   @Override
30   public void init(FilterConfig filterConfig) throws ServletException
31   {
32   }
33
34   @Override
35   public void doFilter(
36       ServletRequest request,
37       ServletResponse response,
38       FilterChain chain
39       )
40       throws
41         IOException,
42         ServletException
43   {
44     if ((response instanceof HttpServletResponse))
45       ServletUtil.setForceInclude((HttpServletRequest)request, true);
46  
47     chain.doFilter(request, response);
48   }
49
50   @Override
51   public void destroy()
52   {
53   }
54   
55 }