浏览 12963 次
锁定老帖子 主题:在spring MVC中配置多个视图
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-11-04
1.首先在web.xml,配置多个Dispatcher,不同视图当然转发不一样! web.xml <servlet-name>fm</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jstl</servlet-name> <url-pattern>/*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>fm</servlet-name> <url-pattern>/*.fm</url-pattern> </servlet-mapping> <servlet> 2.然后再配置*-servlet文件 jstl-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/hello.do">showCon</prop> </props> </property> </bean> <bean name="showCon" class="test.mvc.web.ShowController"/> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"><value>/WEB-INF/template/jsp/</value></property> <property name="suffix"><value>.jsp</value></property> <property name="viewClass"> <value>org.springframework.web.servlet.view.JstlView</value> </property> </bean> </beans> fm-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/hello.fm">showCon</prop> </props> </property> </bean> <bean name="showCon" class="test.mvc.web.ShowController"/> <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="suffix"><value>.fm</value></property> <property name="viewClass"> <value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value> </property> <property name="contentType"><value>text/html; charset=gb2312</value></property> </bean> </beans> 两个视图都调用test.mvc.web.ShowController,所以即使全部换了视图层,也不影响到控制层的东西,这就是spring MVC强大之一! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-11-04
好,看来喜欢SpringMVC的越来越多了
过些天写个帖子总结SpringMVC对Validator和国际化的支持 或者楼主想写也行 |
|
返回顶楼 | |
发表时间:2006-11-28
如果映射的数据库表的一个字段为:private Byte startIni;
我呢在freemarker中这样写: <td class='small' ><#if bmBase.startIni=0>完成<#else>完成</#if></td> 为什么老是报错呢? The only legal comparisons are between two numbers, two strings, or two dates. Left hand operand is a freemarker.template.SimpleScalar Right hand operand is a freemarker.template.SimpleNumber 好像比较的是只能是二个numbers,二个String,二个two dates,那对于我的Byte怎么写呢? |
|
返回顶楼 | |
发表时间:2006-12-02
配置多个ViewResolver就可以了,没必要配置多个DispatcherServlet,当然楼主这么做也可以,但会增加配置复杂度,实际上Spring MVC中View跟DispatherServlet之间除了viewName外,没有太大关系
|
|
返回顶楼 | |
发表时间:2006-12-02
可能出现的问题就不说了。可以看看spring 2.0那个国际化例子。
ResourceBundleViewResolver 这种编码方式最好不要尝试。 http://www.jactiongroup.net/reference2/html/mvc.html#mvc-viewresolver-chaining 当在一个web应用中混合使用不同的视图技术时,你可以使用ResourceBundleViewResolver: <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views"/> <property name="defaultParentView" value="parentView"/> </bean> ResourceBundleViewResolver通过basename所指定的ResourceBundle解析视图名。对每个待解析的视图,ResourceBundle里的[视图名].class所对应的值就是实现该视图的类。同样,[视图名].url所对应的值是该视图所对应的URL。从上面的例子里你也可以发现,你可以指定一个parent view,其它的视图都可以从parent view扩展。用这种方法,你可以声明一个默认的视图。 关于视图缓存的注意事项 --继承AbstractCachingViewResolver的解析器可以缓存它曾经解析过的视图。当使用某些视图技术时,这可以大幅度的提升性能。你也可以关掉缓存功能,只要把cache属性设成false就可以了。而且,如果你需要在系统运行时动态地更新某些视图(比如,当一个Velocity模板被修改了),你可以调用removeFromCache(String viewName, Locale loc)方法来达到目的。 |
|
返回顶楼 | |
发表时间:2007-01-29
flyspider 写道 配置多个ViewResolver就可以了,没必要配置多个DispatcherServlet,当然楼主这么做也可以,但会增加配置复杂度,实际上Spring MVC中View跟DispatherServlet之间除了viewName外,没有太大关系
不配置多个 DispatcherServlet 不就没法做到 *.jstl的去 jstl界面, *.fm的去 fm界面了么? |
|
返回顶楼 | |