Check template availability in ScriptTemplateView

This commit overrides the `checkResource` implementation in
`ScriptTemplateView` in order to check if the template file resource is
available and if the resolver can then proceed with rendering the
template.

Issue: SPR-14729
This commit is contained in:
Brian Clozel
2016-09-17 22:18:55 +02:00
parent ed19dc7900
commit 97c9b05c15
2 changed files with 44 additions and 35 deletions

View File

@@ -16,6 +16,7 @@
package org.springframework.web.servlet.view.script;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
@@ -25,6 +26,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.script.Invocable;
import javax.script.ScriptEngine;
@@ -187,6 +189,19 @@ public class ScriptTemplateView extends AbstractUrlBasedView {
this.resourceLoaderPath = resourceLoaderPath;
}
@Override
public boolean checkResource(Locale locale) throws Exception {
try {
getTemplate(getUrl());
return true;
}
catch (FileNotFoundException exc) {
if (logger.isDebugEnabled()) {
logger.debug("No ScriptTemplate view found for URL: " + getUrl());
}
return false;
}
}
@Override
protected void initApplicationContext(ApplicationContext context) {