Skip to content

Commit 27f58db

Browse files
committed
Polish ViewResolversBeanDefinitionParser
1 parent d293889 commit 27f58db

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

spring-webmvc/src/main/java/org/springframework/web/servlet/config/ViewResolversBeanDefinitionParser.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,6 @@ public BeanDefinition parse(Element element, ParserContext context) {
7070
Object source = context.extractSource(element);
7171
context.pushContainingComponent(new CompositeComponentDefinition(element.getTagName(), source));
7272

73-
RootBeanDefinition compositeResolverBeanDef = new RootBeanDefinition(ViewResolverComposite.class);
74-
compositeResolverBeanDef.setSource(source);
75-
compositeResolverBeanDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
76-
7773
ManagedList<Object> resolvers = new ManagedList<Object>(4);
7874
resolvers.setSource(context.extractSource(element));
7975
String[] names = new String[] {"jsp", "tiles", "bean-name", "freemarker", "velocity", "groovy", "bean", "ref"};
@@ -122,28 +118,32 @@ else if ("bean-name".equals(name)) {
122118
resolvers.add(resolverBeanDef);
123119
}
124120

125-
List<Element> elementList = DomUtils.getChildElementsByTagName(element, new String[] {"content-negotiation"});
126-
if (elementList.isEmpty()) {
121+
String beanName = VIEW_RESOLVER_BEAN_NAME;
122+
RootBeanDefinition compositeResolverBeanDef = new RootBeanDefinition(ViewResolverComposite.class);
123+
compositeResolverBeanDef.setSource(source);
124+
compositeResolverBeanDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
125+
126+
names = new String[] {"content-negotiation"};
127+
List<Element> contentnNegotiationElements = DomUtils.getChildElementsByTagName(element, names);
128+
if (contentnNegotiationElements.isEmpty()) {
127129
compositeResolverBeanDef.getPropertyValues().add("order", 0);
128130
compositeResolverBeanDef.getPropertyValues().add("viewResolvers", resolvers);
129131
}
130-
else if (elementList.size() == 1) {
131-
BeanDefinition beanDef = createContentNegotiatingViewResolver(elementList.get(0), context);
132+
else if (contentnNegotiationElements.size() == 1) {
133+
BeanDefinition beanDef = createContentNegotiatingViewResolver(contentnNegotiationElements.get(0), context);
132134
beanDef.getPropertyValues().add("viewResolvers", resolvers);
133135
ManagedList<Object> list = new ManagedList<Object>(1);
134136
list.add(beanDef);
135137

136138
compositeResolverBeanDef.getPropertyValues().add("order", Ordered.HIGHEST_PRECEDENCE);
137139
compositeResolverBeanDef.getPropertyValues().add("viewResolvers", list);
138140
}
139-
else if (elementList.size() > 1) {
141+
else if (contentnNegotiationElements.size() > 1) {
140142
throw new IllegalArgumentException("Only one <content-negotiation> element is allowed.");
141143
}
142144

143-
String beanName = VIEW_RESOLVER_BEAN_NAME;
144145
context.getReaderContext().getRegistry().registerBeanDefinition(beanName, compositeResolverBeanDef);
145146
context.registerComponent(new BeanComponentDefinition(compositeResolverBeanDef, beanName));
146-
147147
context.popAndRegisterContainingComponent();
148148
return null;
149149
}

0 commit comments

Comments
 (0)