这篇博客,看一下在Controller类中,进行结果的跳转方式,对于SpringMVC框架中异常,如何统一捕捉,还有就是S(SpringMVC)SH的整合。

一,框架默认情况下是通过转发进行跳转的,如果我们想通过重定向怎么办呢?只需要在控制器类中,将返回的结果对象中传递View视图参数,RedirectView对象就是重定向的视图。

View view = new RedirectView("http://www.ljh.com/index.jsp");

returnnew ModelAndView(view);

或者可以将路径写到配置文件中,或者属性配置文件中,都是可以的。这样我们的控制器类的返回对象ModelAndView的构造方法只需要设置一个字符串参数即可。

returnnew ModelAndView("index");

配置文件中使用重定向视图解析器进行页面跳转。

  1. <bean id="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"></bean>
  2. <!-- bean的id属性值要与控制器的返回对象参数名称一致-->
  3. <bean id="index" class="org.springframework.web.servlet.view.RedirectView">
  4. <property name="url" value="http://www.ljh.com/index.jsp"></property>
  5. </bean>

这样,我们一个配置文件中就可能出现多个视图解析器,怎么判断使用那个呢?我们可以通过设置order来进行选择优先级的设置,<property name="order"value="2"></property> ,需要注意的是,InternalResourceViewResolver优先级应该最低,order属性值要比其他的视图解析器的值要大。能够保证所有的映射不被遗忘。而且能够达到我们想要的效果。这是对转发和重定向的学习,其实就是一些新设置,原理和其它都是相同的,我们可以通过查看资料获取更多,例如api,网上资料等。

二,Exception,一般在项目中,出现异常,我们会跳到指定的错误页面,以防给用户暴露不友善的页面信息。这个功能在SpringMVC中也是很容易配置的。准备好我们的错误页面,这里将其错误页面的路径放到属性配置文件中进行读取,然后在配置文件中添加:

  1. <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
  2. <property name="basenames">
  3. <list>
  4. <!--
  5. 框架默认绑定的属性资源文件的名称views.properties,可以不用注入basenames属性。
  6. 如果属性资源文件名称自定义,那么必须要手动注入basenames属性,指定文件的名称,不需要增加后缀名。
  7. -->
  8. <value>view</value>
  9. </list>
  10. </property>
  11. </bean>
  12. <!-- 异常处理解析器 -->
  13. <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  14. <property name="exceptionMappings">
  15. <props>
  16. <prop key="java.lang.Exception">error</prop>
  17. </props>
  18. </property>
  19. </bean>

在属性配置文件中添加:

error.class=org.springframework.web.servlet.view.RedirectView

error.url=http://www.egov.com/error.jsp

这样,当出现任何异常时,就会跳到我们提前设置好的错误页面上了。

三,最后看一下S(SpringMVC)SH三的框架的整合吧,由于SpringMVC和Spring能够无缝集成,所以这里不需要说太多,只需要把框架需要的jar包,配置文件进行导入编写即可。看网上一篇文章吧,写的很详细:搭建SpringMvc+Spring+Hibernate开发框架详细说明

总而言之,对于MVC流程框架,我们学习会一种了,其它的都大同小异,通过横向对比着来学习,就相当于我们的横切面编程。数据持久层的框架相互对比着学习,业务层的框架相互对比着学习,这样我们能够举一反三,理解的更加深刻。当然实践中的开发,更有助于我们的理解。

SpringMVC(三)——其他知识的更多相关文章

  1. springMVC1 springmvc的基础知识

    springmvc第一天 springmvc的基础知识 springmvc课程安排: 第一天: 基础知识 springmvc框架(重点) mvc在b/s系统中应用方式 springmvc框架原理(Di ...

  2. SpringMVC 三种异常处理方式

    SpringMVC 三种异常处理方式 在 SpringMVC, SpringBoot 处理 web 请求时, 若遇到错误或者异常,返回给用户一个良好的错误信息比 Whitelabel Error Pa ...

  3. springmvc(三) 参数绑定、

    前面两章就介绍了什么是springmvc,springmvc的框架原理,并且会简单的使用springmvc以及ssm的整合,从这一章节来看,就开始讲解springmvc的各种功能实现,慢慢消化 --W ...

  4. SpringMVC(三):参数绑定、输入输出转换

    一.参数解析绑定 1. 自定义绑定:不绑定某些项 @InitBinder private void initBinder(WebDataBinder dataBinder) { dataBinder. ...

  5. Azure AD(三)知识补充-Azure资源的托管标识

    一,引言 来个惯例,吹水! 前一周因为考试,还有个人的私事,一下子差点颓废了.想了想,写博客这种的东西还是得坚持,再忙,也要检查.要养成一种习惯,同时这也是自我约束的一种形式.虽然说不能浪费大量时间在 ...

  6. SpringMVC(三) RequestMapping修饰类

    SpringMVC使用@RequestMapping 注解为控制器指定可以处理哪些URL请求. 可以用于类定义以及方法定义: 类定义:提供初步的请求映射信息.相对于WEB应用的根目录. 方法处:提供进 ...

  7. springMvc(三)session、HandlerInterceptorAdapter

    仅供参考 设置session值,根据自己的需求设置值 /** * 登入验证 * * @return */ @RequestMapping(value = "/loginCheck.htm&q ...

  8. SpringMVC(三) —— 参数绑定和数据回显

    参数绑定的过程:就是页面向后台传递参数,后台接受的一个过程. 默认支持的参数类型:(就是你在方法上以形参的形式去定义一下的类型,就可以直接使用它) HttpServletRequest HttpSer ...

  9. SpringMVC(三):@RequestMapping中的URL中设定通配符,可以使用@PathVariable映射URL绑定的占位符

    1)带占位符的URL是Spring3.0新增的功能,该功能在SpringMVC向REST目标挺进发展过程中具有里程碑的意义. 2)通过@PathVariable可以将URL中占位符参数绑定到控制器处理 ...

  10. SpringMVC的相关知识

    前几天学习了SpringMVC 感觉比Servlet好用得多具体如下: 首先SpringMVC的概念: SpringMVC是一个前端控制框架,主要用来负责与页面的交互.SpringMVC是Spring ...

随机推荐

  1. (转)Android创建桌面快捷方式两种方法

    [IT168技术]Android在桌面上生成快捷方式有两种情况,一种是直接在桌面直接生成;一种是长按桌面,在弹出的快捷菜单中生成. 谈谈在桌面上直接生成.个人觉得这个比较爽快,既然都是快捷方式了干嘛还 ...

  2. kafka-分布式消息系统

    消息中间件MessageQuene 解耦且可扩展:业务复杂度的提升带来的也是耦合度的提高,消息队列在处理过程中间插入了一个隐含的.基于数据的接口层,两边的处理过程都要实现这一接口.这允许你独立的扩展或 ...

  3. Java 高效 MVC & REST 开发框架 JessMA v3.2.1 即将发布

        JessMA(原名:Portal-Basic)是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 ...

  4. UESTC 1811 Hero Saving Princess

    九野的博客,转载请注明出处 http://blog.csdn.net/acmmmm/article/details/11104265 题目链接 :http://222.197.181.5/proble ...

  5. jquery商城类封装插件

    自从解决了定时器的问题后,什么都好弄了 这是仿苏宁商城banner的,当然我没弄得那么好啦,但是我想就是那个缩略图,我没弄好吧,方法我猜想是通过把所有li都放进数组,然后通过遍历,就可以做出相应的效果 ...

  6. .net 网站发布 Web.Config中的<compilation debug="true"/>

    Web.Config中的<compilation debug="true"/> <compilation debug="true"/> ...

  7. Java并发编程之ConcurrentHashMap

    原文地址:http://www.iteye.com/topic/1103980 ConcurrentHashMap 是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功 ...

  8. php统计文件夹大小

    function dirsize($dir){ @$dh = opendir($dir); $size = 0; while($file = @readdir($dh)){ if($file!=&qu ...

  9. 阅读书目_2014H1

    1.<程序员修炼之道 专业程序员必知的33个技巧>(完成) 注:更多是面向程序员全工作流程的. 2.linux shell脚本攻略 适合初学,但不方便作为参考手册查阅. 3.编写可读代码的 ...

  10. Linux远程拷贝scp命令

    今天要从admin服务器将测试上修正content和image_count后的数据库更新到dz服务器. 首先需要备份数据库,使用mysqldump命令 整表全部备份:    mysqldump -u ...