`
jinnianshilongnian
  • 浏览: 21431908 次
  • 性别: Icon_minigender_1
博客专栏
5c8dac6a-21dc-3466-8abb-057664ab39c7
跟我学spring3
浏览量:2404633
D659df3e-4ad7-3b12-8b9a-1e94abd75ac3
Spring杂谈
浏览量:2997324
43989fe4-8b6b-3109-aaec-379d27dd4090
跟开涛学SpringMVC...
浏览量:5631174
1df97887-a9e1-3328-b6da-091f51f886a1
Servlet3.1规范翻...
浏览量:257473
4f347843-a078-36c1-977f-797c7fc123fc
springmvc杂谈
浏览量:1593044
22722232-95c1-34f2-b8e1-d059493d3d98
hibernate杂谈
浏览量:248922
45b32b6f-7468-3077-be40-00a5853c9a48
跟我学Shiro
浏览量:5847149
Group-logo
跟我学Nginx+Lua开...
浏览量:697994
5041f67a-12b2-30ba-814d-b55f466529d5
亿级流量网站架构核心技术
浏览量:780320
社区版块
存档分类
最新评论

第四章 Controller接口控制器详解 (4)——跟着开涛学SpringMVC

 
阅读更多

 

4.12、ParameterizableViewController

参数化视图控制器,不进行功能处理(即静态视图),根据参数的逻辑视图名直接选择需要展示的视图。

Java代码   
  1. <bean name="/parameterizableView"  
  2. class="org.springframework.web.servlet.mvc.ParameterizableViewController">  
  3. <property name="viewName" value="success"/>  
  4. </bean>  

该控制器接收到请求后直接选择参数化的视图,这样的好处是在配置文件中配置,从而避免程序的硬编码,比如像帮助页面等不需要进行功能处理,因此直接使用该控制器映射到视图。

4.13、AbstractUrlViewController

提供根据请求URL路径直接转化为逻辑视图名的支持基类,即不需要功能处理,直接根据URL计算出逻辑视图名,并选择具体视图进行展示:

urlDecode是否进行url解码,不指定则默认使用服务器编码进行解码(如Tomcat默认ISO-8859-1);

urlPathHelper用于解析请求路径的工具类,默认为org.springframework.web.util.UrlPathHelper。

 

UrlFilenameViewController是它的一个实现者,因此我们应该使用UrlFilenameViewController。

 

4.14、UrlFilenameViewController

将请求的URL路径转换为逻辑视图名并返回的转换控制器,即不需要功能处理,直接根据URL计算出逻辑视图名,并选择具体视图进行展示:

 

根据请求URL路径计算逻辑视图名;

 

Java代码   
  1. <bean name="/index1/*"   
  2. class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>  
  3. <bean name="/index2/**"   
  4. class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>  
  5. <bean name="/*.html"   
  6. class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>  
  7. <bean name="/index3/*.html"   
  8. class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>  

/index1/*可以匹配/index1/demo,但不匹配/index1/demo/demo,如/index1/demo逻辑视图名为demo;

/index2/**可以匹配/index2路径下的所有子路径,如匹配/index2/demo,或/index2/demo/demo,“/index2/demo”的逻辑视图名为demo,而“/index2/demo/demo”逻辑视图名为demo/demo;

/*.html可以匹配如/abc.html,逻辑视图名为abc,后缀会被删除(不仅仅可以是html);

/index3/*.html可以匹配/index3/abc.html,逻辑视图名也是abc;

 

上述模式为Spring Web MVC使用的Ant-style 模式进行匹配的:

 

Java代码   
  1. ?    匹配一个字符,如/index? 可以匹配 /index1 , 但不能匹配 /index 或 /index12  
  2. *    匹配零个或多个字符,如/index1/*,可以匹配/index1/demo,但不匹配/index1/demo/demo 
  3. **   匹配零个或多个路径,如/index2/**:可以匹配/index2路径下的所有子路径,如匹配/index2/demo,或/index2/demo/demo 
  4.  
  5. 如果我有如下模式,那Spring该选择哪一个执行呢?当我的请求为“/long/long”时如下所示: 
  6. /long/long 
  7. /long/**/abc  
  8. /long/** 
  9. /** 
  10. Spring的AbstractUrlHandlerMapping使用:最长匹配优先; 
  11. 如请求为“/long/long” 将匹配第一个“/long/long”,但请求“/long/acd” 则将匹配 “/long/**”,如请求“/long/aa/abc”则匹配“/long/**/abc”,如请求“/abc”则将匹配“/**”  

UrlFilenameViewController还提供了如下属性:

prefix生成逻辑视图名的前缀;

suffix生成逻辑视图名的后缀;

Java代码   
  1. protected String postProcessViewName(String viewName) {  
  2.         return getPrefix() + viewName + getSuffix();  
  3. }  
Java代码   
  1. <bean name="/*.htm" class="org.springframework.web.servlet.mvc.UrlFilenameViewController">  
  2.         <property name="prefix" value="test"/>  
  3.         <property name="suffix" value="test"/>  
  4. </bean>  

prefix=“test”,suffix=“test,如上所示的/*.htm可以匹配如/abc.htm,但逻辑视图名将变为testabctest。

 

私塾在线学习网原创内容(http://sishuok.com

原创内容,转载请注明私塾在线【http://sishuok.com/forum/blogPost/list/5498.html

 

 

31
21
分享到:
评论
10 楼 wangviviying 2016-08-26  
ws.song 写道
Lz,好多类都过时了,是不是因为现在都用注解的方式?

是啊
9 楼 ws.song 2015-07-27  
Lz,好多类都过时了,是不是因为现在都用注解的方式?
8 楼 redcoatjk 2015-02-28  
带着做功能的形式来讲知识点或许比较好.
容易理解.后面再比较,有兴趣的人可以深入了解.
7 楼 lwphk 2015-01-10  
没事了 ! sb了下   ${param.msg}
6 楼 lwphk 2015-01-10  
这样可以! 但是  aaa/bbb的请求是到了bbb.jsp  但是如果我要  aaa/bbb?msg=xxx 这样在bbb.jsp 里面${msg}获取不到.有什么方法保留参数没啊?
5 楼 jinnianshilongnian 2012-12-10  
lwkjob 写道
ParameterizableViewController这个方法已经过时,我看了文档上面写着过时(是2003年4月25日),但是没找到神马地方写着新的替代方法?请指教谢谢!!

mvc:view-controller

This tag is a shorcut for defining a ParameterizableViewController that immediately forwards to a view when invoked.
4 楼 lwkjob 2012-12-10  
发错了 AbstractUrlViewController 是这个类已经过时
3 楼 lwkjob 2012-12-10  
ParameterizableViewController这个方法已经过时,我看了文档上面写着过时(是2003年4月25日),但是没找到神马地方写着新的替代方法?请指教谢谢!!
2 楼 jinnianshilongnian 2012-11-22  
縌流而上的魚 写道
UrlFilenameViewController
这里有点晕,没办法在程序中实现了,我在WEB-INF的目录下建了个文件夹index1,并在文件夹下建了个success.html,然后配置
<bean name="/index1/*.html" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
运行程序,输入URL:http://localhost:8080/springMVC/index1/ 没有办法访问到success.html页面。不知道为什么。。

http://localhost:8080/springMVC/index1/success.html

返回success 这个逻辑视图名 (然后再交给viewResolver解析)
1 楼 縌流而上的魚 2012-11-21  
UrlFilenameViewController
这里有点晕,没办法在程序中实现了,我在WEB-INF的目录下建了个文件夹index1,并在文件夹下建了个success.html,然后配置
<bean name="/index1/*.html" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
运行程序,输入URL:http://localhost:8080/springMVC/index1/ 没有办法访问到success.html页面。不知道为什么。。

相关推荐

    源代码下载 第五章 处理器拦截器详解——跟着开涛学SpringMVC

    NULL 博文链接:https://jinnianshilongnian.iteye.com/blog/1679570

    跟着开涛学SpringMVC

    跟着开涛学SpringMVC,很好的MVC教程,简单易懂,PDF高清版本

    SpringMvc开涛.rar

    PDF,源代码 开涛学SpringMVC 第一章源...第四章 Controller接口控制器详解 源代码下载 第五章 处理器拦截器详解——跟着开涛学SpringMVC 第六章 注解式控制器详解 第七章 注解式控制器的数据验证、类型转换及格式化

    跟着开涛学SpringMVC.pdf

    跟开涛学springmvc pdf电子文档版 适合学习springmvc 非常好的教程

    跟我学SpringMVC 教程

    第四章 Controller接口控制器详解(4) 第四章 Controller接口控制器详解(5) 第四章 Controller接口控制器详解(6) 第五章 处理器拦截器详解 第六章 注解式控制器详解 注解式控制器运行流程及处理器定义 第...

    跟我学SpringMVC

    第四章 Controller接口控制器详解(4) 第四章 Controller接口控制器详解(5) 第四章 Controller接口控制器详解(6) 第五章 处理器拦截器详解 第六章 注解式控制器详解 注解式控制器运行流程及处理器定义 第六章 ...

    Spring MVC学习(四)-------Controller接口控制器详解1

    Spring MVC学习(四)-------Controller接口控制器详解1

    SpringMVC教程

    第四章 Controller接口控制器详解 (4).pdf 第四章 Controller接口控制器详解 (5).pdf 第四章 Controller接口控制器详解 (6).pdf 第四章 Controller接口控制器详解(7 完).pdf 第五章 处理器拦截器详解.pdf 第...

    跟开涛学 SpringMVC

    跟开涛学 SpringMVC跟开涛学 SpringMVC跟开涛学 SpringMVC跟开涛学 SpringMVC

    跟开涛学SpringMVC-高清版

    跟开涛学SpringMVC-高清版,找了好久的,分享给大家。

    跟开涛学SpringMVC(4.6)Controller接

    跟开涛学SpringMVC(4.6)Controller接口控制器详解(6)Java开发Java经验技巧共10页.pdf.zip

    跟开涛学SpringMVC(4.3)Controller接

    跟开涛学SpringMVC(4.3)Controller接口控制器详解(3)Java开发Java经验技巧共9页.pdf.zip

    跟开涛学SpringMVC

    跟开涛学SpringMVC 高清 带书签 pdf 通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText和POI。Spring MVC 框架并不知道使用的视图,所以...

    跟开涛学SpringMVC源代码

    跟开涛学SpringMVC源代码汇总

    跟开涛学springmvc

    开涛写的中文springmvc开发文档 , 初学者可以下载学习,或者当做字典用。

    跟开涛学习springmvc spring 3 pdf

    跟开涛学习springmvc spring 3 pdf ,非常好的资料。我将原文档的spring合并为一份,查看更方便一些。

    跟开涛学SpringMVC(5)处理器拦截器详解Java开

    跟开涛学SpringMVC(5)处理器拦截器详解Java开发Java经验技巧共13页.pdf.zip

    跟着开涛学习Spring+SpringMVC+源码+亿级流量网站

    整合开涛的Spring、SpringMVC和亿级流量网站架构核心技术的pdf版,以及学习的源码。只是学习提升的资源搬运,如有侵权自当删之。(文件太大,上传的是百度云链接,如果失效请联系)

    SpringMVC入门——跟开涛学SpringMVC

    SpringWebMVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行...应用控制器其实拆为处理器映射器(HandlerMapping)进行处理器管理和视图解析器(ViewResolv

Global site tag (gtag.js) - Google Analytics