45
45
* {@link LiteDeviceDelegatingViewResolver}. If {@link ThymeleafViewResolver} is available
46
46
* it is configured as the delegate view resolver. Otherwise,
47
47
* {@link InternalResourceViewResolver} is used as a fallback.
48
- *
48
+ *
49
49
* @author Roy Clarkson
50
50
* @since 1.1.0
51
51
*/
@@ -57,21 +57,49 @@ public class DeviceDelegatingViewResolverAutoConfiguration {
57
57
58
58
private static Log logger = LogFactory .getLog (WebMvcConfigurerAdapter .class );
59
59
60
- public static final String DEFAULT_NORMAL_PREFIX = "" ;
60
+ private static abstract class AbstractDelegateConfiguration implements
61
+ EnvironmentAware {
61
62
62
- public static final String DEFAULT_MOBILE_PREFIX = "mobile/" ;
63
+ private RelaxedPropertyResolver environment ;
63
64
64
- public static final String DEFAULT_TABLET_PREFIX = "tablet/" ;
65
+ @ Override
66
+ public void setEnvironment (Environment environment ) {
67
+ this .environment = new RelaxedPropertyResolver (environment ,
68
+ "spring.mobile.devicedelegatingviewresolver." );
69
+ }
65
70
66
- public static final String DEFAULT_NORMAL_SUFFIX = "" ;
71
+ protected LiteDeviceDelegatingViewResolver getConfiguredViewResolver (
72
+ ViewResolver delegate , int delegateOrder ) {
73
+ LiteDeviceDelegatingViewResolver resolver = new LiteDeviceDelegatingViewResolver (
74
+ delegate );
75
+ resolver .setNormalPrefix (getProperty ("normal-prefix" , "" ));
76
+ resolver .setNormalSuffix (getProperty ("normal-suffix" , "" ));
77
+ resolver .setMobilePrefix (getProperty ("mobile-prefix" , "mobile/" ));
78
+ resolver .setMobileSuffix (getProperty ("mobile-suffix" , "" ));
79
+ resolver .setTabletPrefix (getProperty ("tablet-prefix" , "tablet/" ));
80
+ resolver .setTabletSuffix (getProperty ("tablet-suffix" , "" ));
81
+ resolver .setOrder (getAdjustedOrder (delegateOrder ));
82
+ return resolver ;
83
+ }
84
+
85
+ private String getProperty (String key , String defaultValue ) {
86
+ return this .environment .getProperty (key , defaultValue );
87
+ }
67
88
68
- public static final String DEFAULT_MOBILE_SUFFIX = "" ;
89
+ private int getAdjustedOrder (int order ) {
90
+ if (order == Ordered .HIGHEST_PRECEDENCE ) {
91
+ return Ordered .HIGHEST_PRECEDENCE ;
92
+ }
93
+ // The view resolver must be ordered higher than the delegate view
94
+ // resolver, otherwise the view names will not be adjusted
95
+ return order - 1 ;
96
+ }
69
97
70
- public static final String DEFAULT_TABLET_SUFFIX = "" ;
98
+ }
71
99
72
100
@ Configuration
73
101
@ ConditionalOnMissingBean (name = "deviceDelegatingViewResolver" )
74
- @ ConditionalOnExpression ("${spring.mobile.deviceDelegatingViewResolver .enabled:false}" )
102
+ @ ConditionalOnExpression ("${spring.mobile.devicedelegatingviewresolver .enabled:false}" )
75
103
protected static class DeviceDelegatingViewResolverConfiguration {
76
104
77
105
@ Configuration
@@ -81,15 +109,16 @@ protected static class ThymeleafViewResolverViewResolverDelegateConfiguration
81
109
extends AbstractDelegateConfiguration {
82
110
83
111
@ Autowired
84
- private ThymeleafViewResolver thymeleafViewResolver ;
112
+ private ThymeleafViewResolver viewResolver ;
85
113
86
114
@ Bean
87
115
public LiteDeviceDelegatingViewResolver deviceDelegatingViewResolver () {
88
116
if (logger .isDebugEnabled ()) {
89
- logger .debug ("LiteDeviceDelegatingViewResolver delegates to ThymeleafViewResolver" );
117
+ logger .debug ("LiteDeviceDelegatingViewResolver delegates to "
118
+ + "ThymeleafViewResolver" );
90
119
}
91
- return getConfiguredViewResolver (thymeleafViewResolver ,
92
- thymeleafViewResolver .getOrder ());
120
+ return getConfiguredViewResolver (this . viewResolver ,
121
+ this . viewResolver .getOrder ());
93
122
}
94
123
95
124
}
@@ -101,58 +130,16 @@ protected static class InternalResourceViewResolverDelegateConfiguration extends
101
130
AbstractDelegateConfiguration {
102
131
103
132
@ Autowired
104
- private InternalResourceViewResolver internalResourceViewResolver ;
133
+ private InternalResourceViewResolver viewResolver ;
105
134
106
135
@ Bean
107
136
public LiteDeviceDelegatingViewResolver deviceDelegatingViewResolver () {
108
137
if (logger .isDebugEnabled ()) {
109
- logger .debug ("LiteDeviceDelegatingViewResolver delegates to InternalResourceViewResolver" );
110
- }
111
- return getConfiguredViewResolver (internalResourceViewResolver ,
112
- internalResourceViewResolver .getOrder ());
113
- }
114
-
115
- }
116
-
117
- private static abstract class AbstractDelegateConfiguration implements
118
- EnvironmentAware {
119
-
120
- private RelaxedPropertyResolver environment ;
121
-
122
- @ Override
123
- public void setEnvironment (Environment environment ) {
124
- this .environment = new RelaxedPropertyResolver (environment ,
125
- "spring.mobile.deviceDelegatingViewResolver." );
126
- }
127
-
128
- protected LiteDeviceDelegatingViewResolver getConfiguredViewResolver (
129
- ViewResolver delegate , int delegateOrder ) {
130
- LiteDeviceDelegatingViewResolver resolver = new LiteDeviceDelegatingViewResolver (
131
- delegate );
132
- resolver .setNormalPrefix (this .environment .getProperty ("normalPrefix" ,
133
- DEFAULT_NORMAL_PREFIX ));
134
- resolver .setMobilePrefix (this .environment .getProperty ("mobilePrefix" ,
135
- DEFAULT_MOBILE_PREFIX ));
136
- resolver .setTabletPrefix (this .environment .getProperty ("tabletPrefix" ,
137
- DEFAULT_TABLET_PREFIX ));
138
- resolver .setNormalSuffix (this .environment .getProperty ("normalSuffix" ,
139
- DEFAULT_NORMAL_SUFFIX ));
140
- resolver .setMobileSuffix (this .environment .getProperty ("mobileSuffix" ,
141
- DEFAULT_MOBILE_SUFFIX ));
142
- resolver .setTabletSuffix (this .environment .getProperty ("tabletSuffix" ,
143
- DEFAULT_TABLET_SUFFIX ));
144
- resolver .setOrder (getAdjustedOrder (delegateOrder ));
145
- return resolver ;
146
- }
147
-
148
- private int getAdjustedOrder (int delegateViewResolverOrder ) {
149
- if (delegateViewResolverOrder == Ordered .HIGHEST_PRECEDENCE ) {
150
- return Ordered .HIGHEST_PRECEDENCE ;
151
- } else {
152
- // The view resolver must be ordered higher than the delegate view
153
- // resolver, otherwise the view names will not be adjusted
154
- return delegateViewResolverOrder - 1 ;
138
+ logger .debug ("LiteDeviceDelegatingViewResolver delegates to "
139
+ + "InternalResourceViewResolver" );
155
140
}
141
+ return getConfiguredViewResolver (this .viewResolver ,
142
+ this .viewResolver .getOrder ());
156
143
}
157
144
158
145
}
0 commit comments