Skip to content

Commit 47497b2

Browse files
Added includeExtension flag to template resolution - getAbsoluteTemplateURI(..)
1 parent 91b08f7 commit 47497b2

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

grails-web-common/src/main/groovy/grails/web/pages/GroovyPagesUriService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public interface GroovyPagesUriService {
4848

4949
String getTemplateURI(String controllerName, String templateName, boolean includeExtension);
5050

51-
String getAbsoluteTemplateURI(String templateName);
51+
String getAbsoluteTemplateURI(String templateName, boolean includeExtension);
5252

5353
String getAbsoluteViewURI(String viewName);
5454

grails-web-common/src/main/groovy/org/grails/web/pages/GroovyPagesUriSupport.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,13 @@ public String getTemplateURI(String controllerName, String templateName) {
109109
* Obtains the URI to a template using the controller name and template name
110110
* @param controllerName The controller name
111111
* @param templateName The template name
112+
* @param includeExtension The flag to include the template extension
112113
* @return The template URI
113114
*/
114115
@Override
115116
public String getTemplateURI(String controllerName, String templateName, boolean includeExtension) {
116117
if (templateName.startsWith(SLASH_STR)) {
117-
return getAbsoluteTemplateURI(templateName);
118+
return getAbsoluteTemplateURI(templateName, includeExtension);
118119
}
119120

120121
FastStringWriter buf = new FastStringWriter();
@@ -147,9 +148,10 @@ public String getTemplateURI(String controllerName, String templateName, boolean
147148
* Used to resolve template names that are not relative to a controller.
148149
*
149150
* @param templateName The template name normally beginning with /
151+
* @param includeExtension The flag to include the template extension
150152
* @return The template URI
151153
*/
152-
public String getAbsoluteTemplateURI(String templateName) {
154+
public String getAbsoluteTemplateURI(String templateName, boolean includeExtension) {
153155
FastStringWriter buf = new FastStringWriter();
154156
String tmp = templateName.substring(1,templateName.length());
155157
if (tmp.indexOf(SLASH) > -1) {
@@ -163,7 +165,10 @@ public String getAbsoluteTemplateURI(String templateName) {
163165
buf.append(SLASH_UNDR);
164166
buf.append(templateName.substring(1,templateName.length()));
165167
}
166-
String uri = buf.append(EXTENSION).toString();
168+
if (includeExtension) {
169+
buf.append(EXTENSION);
170+
}
171+
String uri = buf.toString();
167172
buf.close();
168173
return uri;
169174
}

grails-web-gsp/src/main/groovy/org/grails/web/gsp/io/GrailsConventionGroovyPageLocator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public GroovyPageScriptSource findTemplateInBinding(Object controller, String pl
254254
if (controller == null) {
255255
GrailsWebRequest webRequest = GrailsWebRequest.lookup();
256256
if (webRequest == null) {
257-
return findPageInBinding(pluginName, uriService.getAbsoluteTemplateURI(templateName), binding);
257+
return findPageInBinding(pluginName, uriService.getAbsoluteTemplateURI(templateName, true), binding);
258258
}
259259
return findPageInBinding(pluginName, uriService.getTemplateURI(webRequest.getControllerName(), templateName), binding);
260260
}
@@ -285,7 +285,7 @@ public GroovyPageScriptSource findTemplateInBinding(Object controller, String pl
285285
public GroovyPageScriptSource findTemplateInBinding(String templateName, TemplateVariableBinding binding) {
286286
GrailsWebRequest webRequest = GrailsWebRequest.lookup();
287287
if (webRequest == null) {
288-
return findPageInBinding(uriService.getAbsoluteTemplateURI(templateName), binding);
288+
return findPageInBinding(uriService.getAbsoluteTemplateURI(templateName, true), binding);
289289
}
290290
return findPageInBinding(uriService.getTemplateURI(webRequest.getControllerName(), templateName), binding);
291291
}
@@ -301,7 +301,7 @@ public GroovyPageScriptSource findTemplateInBinding(String templateName, Templat
301301
public GroovyPageScriptSource findTemplateInBinding(String pluginName, String templateName, TemplateVariableBinding binding) {
302302
GrailsWebRequest webRequest = GrailsWebRequest.lookup();
303303
if (webRequest == null) {
304-
return findPageInBinding(pluginName, uriService.getAbsoluteTemplateURI(templateName), binding);
304+
return findPageInBinding(pluginName, uriService.getAbsoluteTemplateURI(templateName, true), binding);
305305
}
306306
return findPageInBinding(pluginName, uriService.getTemplateURI(webRequest.getControllerName(), templateName), binding);
307307
}
@@ -314,7 +314,7 @@ public GroovyPageScriptSource findTemplateInBinding(String pluginName, String te
314314
* @return The script source
315315
*/
316316
public GroovyPageScriptSource findTemplateByPath(String uri) {
317-
return findPage(uriService.getAbsoluteTemplateURI(uri));
317+
return findPage(uriService.getAbsoluteTemplateURI(uri, true));
318318
}
319319

320320
protected String lookupRequestFormat() {

0 commit comments

Comments
 (0)