1
1
/*
2
- * Copyright 2002-2009 the original author or authors.
2
+ * Copyright 2002-2010 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
18
18
19
19
import java .util .Map ;
20
20
21
+ import org .w3c .dom .Element ;
22
+
21
23
import org .springframework .beans .factory .config .BeanDefinition ;
22
24
import org .springframework .beans .factory .parsing .BeanComponentDefinition ;
23
25
import org .springframework .beans .factory .support .ManagedMap ;
27
29
import org .springframework .web .servlet .handler .SimpleUrlHandlerMapping ;
28
30
import org .springframework .web .servlet .mvc .ParameterizableViewController ;
29
31
import org .springframework .web .servlet .mvc .SimpleControllerHandlerAdapter ;
30
- import org .w3c .dom .Element ;
31
32
32
33
/**
33
- * {@link org.springframework.beans.factory.xml.BeanDefinitionParser} that parses a {@code view-controller} element to register
34
- * a {@link ParameterizableViewController}. Will also register a {@link SimpleUrlHandlerMapping} for view controllers.
35
- *
34
+ * {@link org.springframework.beans.factory.xml.BeanDefinitionParser} that parses a
35
+ * {@code view-controller} element to register a {@link ParameterizableViewController}.
36
+ * Will also register a {@link SimpleUrlHandlerMapping} for view controllers.
37
+ *
36
38
* @author Keith Donald
37
39
* @author Christian Dupuis
38
40
* @since 3.0
39
41
*/
40
42
class ViewControllerBeanDefinitionParser implements BeanDefinitionParser {
41
43
42
44
private static final String HANDLER_ADAPTER_BEAN_NAME =
43
- "org.springframework.web.servlet.config.internalHandlerAdapter " ;
44
-
45
+ "org.springframework.web.servlet.config.viewControllerHandlerAdapter " ;
46
+
45
47
private static final String HANDLER_MAPPING_BEAN_NAME =
46
- "org.springframework.web.servlet.config.internalHandlerMapping" ;
47
-
48
+ "org.springframework.web.servlet.config.viewControllerHandlerMapping" ;
49
+
50
+
48
51
public BeanDefinition parse (Element element , ParserContext parserContext ) {
49
52
Object source = parserContext .extractSource (element );
50
53
51
54
// Register handler adapter
52
- registerHanderAdapter (element , parserContext , source );
55
+ registerHanderAdapter (parserContext , source );
53
56
54
57
// Register handler mapping
55
- BeanDefinition handlerMappingDef = registerHandlerMapping (element , parserContext , source );
56
-
58
+ BeanDefinition handlerMappingDef = registerHandlerMapping (parserContext , source );
59
+
57
60
// Create view controller bean definition
58
61
RootBeanDefinition viewControllerDef = new RootBeanDefinition (ParameterizableViewController .class );
59
62
viewControllerDef .setSource (source );
@@ -63,15 +66,16 @@ public BeanDefinition parse(Element element, ParserContext parserContext) {
63
66
Map <String , BeanDefinition > urlMap ;
64
67
if (handlerMappingDef .getPropertyValues ().contains ("urlMap" )) {
65
68
urlMap = (Map <String , BeanDefinition >) handlerMappingDef .getPropertyValues ().getPropertyValue ("urlMap" ).getValue ();
66
- } else {
69
+ }
70
+ else {
67
71
urlMap = new ManagedMap <String , BeanDefinition >();
68
72
handlerMappingDef .getPropertyValues ().add ("urlMap" , urlMap );
69
73
}
70
74
urlMap .put (element .getAttribute ("path" ), viewControllerDef );
71
75
return null ;
72
76
}
73
77
74
- private void registerHanderAdapter (Element element , ParserContext parserContext , Object source ) {
78
+ private void registerHanderAdapter (ParserContext parserContext , Object source ) {
75
79
if (!parserContext .getRegistry ().containsBeanDefinition (HANDLER_ADAPTER_BEAN_NAME )) {
76
80
RootBeanDefinition handlerAdapterDef = new RootBeanDefinition (SimpleControllerHandlerAdapter .class );
77
81
handlerAdapterDef .setSource (source );
@@ -81,7 +85,7 @@ private void registerHanderAdapter(Element element, ParserContext parserContext,
81
85
}
82
86
}
83
87
84
- private BeanDefinition registerHandlerMapping (Element element , ParserContext parserContext , Object source ) {
88
+ private BeanDefinition registerHandlerMapping (ParserContext parserContext , Object source ) {
85
89
if (!parserContext .getRegistry ().containsBeanDefinition (HANDLER_MAPPING_BEAN_NAME )) {
86
90
RootBeanDefinition handlerMappingDef = new RootBeanDefinition (SimpleUrlHandlerMapping .class );
87
91
handlerMappingDef .setSource (source );
@@ -95,4 +99,5 @@ private BeanDefinition registerHandlerMapping(Element element, ParserContext par
95
99
return parserContext .getRegistry ().getBeanDefinition (HANDLER_MAPPING_BEAN_NAME );
96
100
}
97
101
}
102
+
98
103
}
0 commit comments