Skip to content

Commit 50ce415

Browse files
committed
Fix for #9362 - Restore Servlet 2.5 support
1 parent 96546b5 commit 50ce415

File tree

3 files changed

+14
-20
lines changed

3 files changed

+14
-20
lines changed

grails-web-common/src/main/groovy/org/codehaus/groovy/grails/web/servlet/view/AbstractGrailsView.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ private void renderWithinGrailsWebRequest(Map<String, Object> model, HttpServlet
4040
try {
4141
GrailsWebRequest webRequest;
4242
if(!(requestAttributes instanceof GrailsWebRequest)) {
43-
webRequest = createGrailsWebRequest(request, response, request.getServletContext());
43+
webRequest = createGrailsWebRequest(request, response, getServletContext());
4444
attributesChanged = true;
4545
WebUtils.storeGrailsWebRequest(webRequest);
4646
} else {
@@ -60,7 +60,6 @@ private void renderWithinGrailsWebRequest(Map<String, Object> model, HttpServlet
6060
* @param model The model to use
6161
* @param request The HttpServletRequest
6262
* @param response The HttpServletResponse instance
63-
* @param engine The TemplateEngine to use
6463
*
6564
* @throws java.io.IOException Thrown when an error occurs writing the response
6665
*/

grails-web-sitemesh/src/main/groovy/org/codehaus/groovy/grails/web/sitemesh/GrailsLayoutView.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.codehaus.groovy.grails.web.servlet.WrappedResponseHolder;
2727
import org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequest;
2828
import org.codehaus.groovy.grails.web.servlet.view.AbstractGrailsView;
29+
import org.codehaus.groovy.grails.web.util.WebUtils;
2930
import org.springframework.http.MediaType;
3031
import org.springframework.web.servlet.View;
3132

@@ -54,19 +55,12 @@ protected void renderTemplate(Map<String, Object> model, GrailsWebRequest webReq
5455
Content content = obtainContent(model, webRequest, request, response);
5556
if (content != null) {
5657
beforeDecorating(content, model, webRequest, request, response);
57-
switch (request.getDispatcherType()) {
58-
case INCLUDE:
59-
break;
60-
case ASYNC:
61-
case ERROR:
62-
case FORWARD:
63-
case REQUEST:
64-
SpringMVCViewDecorator decorator = (SpringMVCViewDecorator) groovyPageLayoutFinder.findLayout(request, content);
65-
if (decorator != null) {
66-
decorator.render(content, model, request, response, webRequest.getServletContext());
67-
return;
68-
}
69-
break;
58+
if(!WebUtils.isIncludeRequest(request)) {
59+
SpringMVCViewDecorator decorator = (SpringMVCViewDecorator) groovyPageLayoutFinder.findLayout(request, content);
60+
if (decorator != null) {
61+
decorator.render(content, model, request, response, webRequest.getServletContext());
62+
return;
63+
}
7064
}
7165
PrintWriter writer = response.getWriter();
7266
content.writeOriginal(writer);
@@ -126,7 +120,7 @@ protected void renderInnerView(Map<String, Object> model, GrailsWebRequest webRe
126120

127121
protected GrailsContentBufferingResponse createContentBufferingResponse(Map<String, Object> model, GrailsWebRequest webRequest, HttpServletRequest request,
128122
HttpServletResponse response) {
129-
return new GrailsViewBufferingResponse(request, response);
123+
return new GrailsViewBufferingResponse(request, response, getServletContext());
130124
}
131125

132126
@Override

grails-web-sitemesh/src/main/groovy/org/codehaus/groovy/grails/web/sitemesh/GrailsViewBufferingResponse.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import java.io.IOException;
1919

20+
import javax.servlet.ServletContext;
2021
import javax.servlet.http.HttpServletRequest;
2122
import javax.servlet.http.HttpServletResponse;
2223

@@ -27,8 +28,8 @@
2728

2829
public class GrailsViewBufferingResponse extends GrailsContentBufferingResponse{
2930
private static class SimpleWebAppContext extends SiteMeshWebAppContext {
30-
public SimpleWebAppContext(HttpServletRequest request, HttpServletResponse response) {
31-
super(request, response, request.getServletContext());
31+
public SimpleWebAppContext(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) {
32+
super(request, response, servletContext);
3233
}
3334
}
3435

@@ -49,7 +50,7 @@ public boolean handles(String contentType) {
4950
}
5051
}
5152

52-
public GrailsViewBufferingResponse(HttpServletRequest request, HttpServletResponse response) {
53-
super(response, new SimpleHtmlOnlyContentProcessor(), new SimpleWebAppContext(request, response));
53+
public GrailsViewBufferingResponse(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) {
54+
super(response, new SimpleHtmlOnlyContentProcessor(), new SimpleWebAppContext(request, response, servletContext));
5455
}
5556
}

0 commit comments

Comments
 (0)