浏览 2787 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-05
最后修改:2009-06-05
package org.dy.ext.spring.web; import java.util.Locale; import java.util.Map; import org.springframework.web.servlet.View; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.view.UrlBasedViewResolver; public class MultipleViewResolver extends UrlBasedViewResolver { private Map<String, ViewResolver> resolvers; @Override protected View loadView(String viewName, Locale locale) throws Exception { // TODO Auto-generated method stub return internalResolveViewName(viewName, locale); } public View internalResolveViewName(String viewName, Locale locale) throws Exception { // 获得扩展名 int n = viewName.lastIndexOf("."); if (n == -1) return null; String suffix = viewName.substring(n + 1); String resolverViewKey = ""; // 查找 eg. zftl,ftl = oneResolver => ftl = oneResolver for (String key : resolvers.keySet()) { String[] arr = key.split(","); for (String subViewName : arr) { if (subViewName.equals(suffix)) { resolverViewKey = key; break; } } } // 取出对应的ViewResolver: ViewResolver resolver = resolvers.get(resolverViewKey); if (resolver != null) return resolver.resolveViewName(viewName, locale); // 没有找到对应的ViewResolver就抛异常 return null; } public Map<String, ViewResolver> getResolvers() { return resolvers; } public void setResolvers(Map<String, ViewResolver> resolvers) { this.resolvers = resolvers; } }
<bean id="viewResolver" class="org.dy.ext.spring.web.MultipleViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="resolvers"> <map> <entry key="jsp"> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/jsp/" /> </bean> </entry> <!-- 其中的js/css表示当需要freemarker动态生成js/css文件 --> <entry key="ftl,zftl,js,css"> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="cache"> <value>true</value> </property> <property name="viewClass"> <value> org.springframework.web.servlet.view.freemarker.FreeMarkerView </value> </property> <property name="contentType"> <value>text/html;charset=utf-8</value> </property> <property name="exposeSpringMacroHelpers"> <value>true</value> </property> </bean> </entry> </map> </property> </bean> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |