This commit is contained in:
Rossen Stoyanchev
2014-07-16 21:43:25 -04:00
parent 80f4ea13c7
commit d23b0fec0c
9 changed files with 61 additions and 43 deletions

View File

@@ -34,6 +34,7 @@ public class GroovyMarkupBeanDefinitionParser extends AbstractSimpleBeanDefiniti
public static final String BEAN_NAME = "mvcGroovyMarkupConfigurer";
@Override
protected String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext) {
return BEAN_NAME;
@@ -45,8 +46,8 @@ public class GroovyMarkupBeanDefinitionParser extends AbstractSimpleBeanDefiniti
}
@Override
protected boolean isEligibleAttribute(String attributeName) {
return attributeName.equals("resource-loader-path");
protected boolean isEligibleAttribute(String name) {
return (name.equals("auto-indent") || name.equals("cache-templates") || name.equals("resource-loader-path"));
}
}

View File

@@ -76,7 +76,7 @@ public class ViewResolversBeanDefinitionParser implements BeanDefinitionParser {
ManagedList<Object> resolvers = new ManagedList<Object>(4);
resolvers.setSource(context.extractSource(element));
String[] names = new String[] {"jsp", "tiles", "bean-name", "freemarker", "velocity", "groovy-markup", "bean", "ref"};
String[] names = new String[] {"jsp", "tiles", "bean-name", "freemarker", "velocity", "groovy", "bean", "ref"};
for (Element resolverElement : DomUtils.getChildElementsByTagName(element, names)) {
String name = resolverElement.getLocalName();
@@ -105,14 +105,14 @@ public class ViewResolversBeanDefinitionParser implements BeanDefinitionParser {
resolverBeanDef.getPropertyValues().add("suffix", ".vm");
addUrlBasedViewResolverProperties(resolverElement, resolverBeanDef);
}
else if ("bean-name".equals(name)) {
resolverBeanDef = new RootBeanDefinition(BeanNameViewResolver.class);
}
else if ("groovy-markup".equals(name)) {
else if ("groovy".equals(name)) {
resolverBeanDef = new RootBeanDefinition(GroovyMarkupViewResolver.class);
resolverBeanDef.getPropertyValues().add("suffix", ".tpl");
addUrlBasedViewResolverProperties(resolverElement, resolverBeanDef);
}
else if ("bean-name".equals(name)) {
resolverBeanDef = new RootBeanDefinition(BeanNameViewResolver.class);
}
else {
// Should never happen
throw new IllegalStateException("Unexpected element name: " + name);

View File

@@ -218,21 +218,12 @@ public class ViewResolverRegistry {
}
/**
* Register a bean name view resolver that interprets view names as the names
* of {@link org.springframework.web.servlet.View} beans.
*/
public void beanName() {
BeanNameViewResolver resolver = new BeanNameViewResolver();
this.viewResolvers.add(resolver);
}
/**
* Register a Groovy Markup Template view resolver with an empty default view name
* Register a Groovy markup view resolver with an empty default view name
* prefix and a default suffix of ".tpl".
*/
public UrlBasedViewResolverRegistration groovyMarkup() {
public UrlBasedViewResolverRegistration groovy() {
if (this.applicationContext != null && !hasBeanOfType(GroovyMarkupConfigurer.class)) {
throw new BeanInitializationException("In addition to a Groovy Markup Template view resolver " +
throw new BeanInitializationException("In addition to a Groovy markup view resolver " +
"there must also be a single GroovyMarkupConfig bean in this web application context " +
"(or its parent): GroovyMarkupConfigurer is the usual implementation. " +
"This bean may be given any name.");
@@ -242,6 +233,15 @@ public class ViewResolverRegistry {
return registration;
}
/**
* Register a bean name view resolver that interprets view names as the names
* of {@link org.springframework.web.servlet.View} beans.
*/
public void beanName() {
BeanNameViewResolver resolver = new BeanNameViewResolver();
this.viewResolvers.add(resolver);
}
/**
* Register a {@link ViewResolver} bean instance. This may be useful to
* configure a custom (or 3rd party) resolver implementation. It may also be