1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.tiles.servlet.wildcard;
23
24 import java.io.IOException;
25 import java.net.URL;
26 import java.util.HashSet;
27 import java.util.Set;
28
29 import javax.servlet.ServletContext;
30
31 import org.apache.tiles.servlet.context.ServletTilesApplicationContext;
32 import org.springframework.core.io.Resource;
33 import org.springframework.core.io.support.ResourcePatternResolver;
34 import org.springframework.web.context.support.ServletContextResourcePatternResolver;
35
36
37
38
39
40
41
42
43 public class WildcardServletTilesApplicationContext extends
44 ServletTilesApplicationContext {
45
46
47
48
49
50
51 protected ResourcePatternResolver resolver;
52
53
54
55
56
57
58
59 public WildcardServletTilesApplicationContext(ServletContext servletContext) {
60 super(servletContext);
61 }
62
63
64 @Override
65 public void initialize(ServletContext context) {
66 super.initialize(context);
67
68 resolver = new ServletContextResourcePatternResolver(context);
69 }
70
71
72 @Override
73 public URL getResource(String path) throws IOException {
74 URL retValue = null;
75 Set<URL> urlSet = getResources(path);
76 if (urlSet != null && !urlSet.isEmpty()) {
77 retValue = urlSet.iterator().next();
78 }
79 return retValue;
80 }
81
82
83 @Override
84 public Set<URL> getResources(String path) throws IOException {
85 Set<URL> urlSet = null;
86 Resource[] resources = resolver.getResources(path);
87 if (resources != null && resources.length > 0) {
88 urlSet = new HashSet<URL>();
89 for (int i = 0; i < resources.length; i++) {
90 urlSet.add(resources[i].getURL());
91 }
92 }
93 return urlSet;
94 }
95 }