zoukankan      html  css  js  c++  java
  • Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p><h3 style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Arial; line-height:26px; text-indent:28px">第三部分:显示全局异常信息,而不是局部异常信息。</h3><p></p><p>        当有很多异常时,光是UserController这个控制器中的异常通过局部异常信息处理,已经不能满足需求。在其他控制器中(包括UserController)中的异常,都可以使用全局异常处理异常信息。</p><p>        1. 在myhello-Servelet.xml文件中,添加SimpleMappingExceptionResolver</p><p>        2. 注入<property>标签,通过<prop>标签列出全局中所有需要处理的异常。</p><p>        3. 然后注释掉局部异常处理code,在UserController控制器的代码中。</p><p>        4. 在error.jsp视图中,使用 ${exception.message } 显示全局异常处理结果。      </p><p></p><p>在myhello-servelet.xml文件中:</p><pre code_snippet_id="526777" snippet_file_name="blog_20141120_1_7394166" name="code" class="html"><?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
      
        <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
      
        <!-- Scans within the base package of the application for @Components to configure as beans -->
        <!-- @Controller, @Service, @Configuration, etc. -->
        <context:component-scan base-package="edu.bit.myhello" />
      
        <!-- Enables the Spring MVC @Controller programming model -->
        <mvc:annotation-driven />
      
      	<!-- Resolve logical view names to .jsp resources in the /WEB-INF/views directory -->
    	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        	<property name="prefix" value="/WEB-INF/views/" />
        	<property name="suffix" value=".jsp" />
    	</bean>
      
      	<bean id = "exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    		<property name="exceptionMappings">
    			<props> 
    				<prop key = "edu.bit.model.UserException">error</prop>		<!--key值的是你要映射哪个类  ,value=error直接写 -->
    				<!-- 这个的意思就是当在UserException中发现异常,就在error中处理,error中就要用exception对象
    				同样还可以:
    				<prop key = "java.lang.NullPointer"> exception </prop> 处理空指针异常,在exception.jsp视图中处理
    				 -->
    			</props>
    		</property>
    	</bean>
      
      
    </beans>
    加入的部分:

      	<bean id = "exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    		<property name="exceptionMappings">
    			<props> 
    				<prop key = "edu.bit.model.UserException">error</prop>		<!--key值的是你要映射哪个类  ,value=error直接写 -->
    				<!-- 这个的意思就是当在UserException中发现异常,就在error中处理,error中就要用exception对象
    				同样还可以:
    				<prop key = "java.lang.NullPointer"> exception </prop> 处理空指针异常,在exception.jsp视图中处理
    				 -->
    			</props>
    		</property>
    	</bean>


    在UserController.java中,注释掉局部异常处理代码:

    /*
    	 * 显示局部的异常信息:仅仅只能处理这个控制器中的异常
    	 * 写一个方法,HandlerException, 把 UserException传进来
    	 */
    //	@ExceptionHandler(value={UserException.class})	//用ExceptionHandler来映射,要处理的value是一个数组
    //													//要处理一个对象就这样写,可处理多个对象。
    //	public String handlerException(UserException ue, HttpServletRequest req){	
    //							//1.把 UserException传进来;
    //							//2.不能用model来传值,因为不是RequestMapping,用HttpSeverletRequest req
    //		//把异常对象存进去:
    //		req.setAttribute("e", ue);	//req 的 “e”参数,被set为 ue
    //		return "error";
    //	}


    在error.jsp中,改为:

    <h1>
    	<!--  ${e.message}   -->
    	${exception.message }
    </h1>

    这样就完成了全局异常处理。






  • 相关阅读:
    1027: C语言程序设计教程(第三版)课后习题7.5
    1026: C语言程序设计教程(第三版)课后习题7.4数组排序
    1025: C语言程序设计教程(第三版)课后习题7.3
    求n之内素数
    迭代
    Java入门:char与byte的区别
    使用MyEclipse 2014创建项目
    Java入门:MyEclipse安装与破解教程
    Java入门:JDK与Eclipse之类的集成开发工具的关系
    Java入门:Java环境变量PATH、CLASSPATH、JAVA_HOME
  • 原文地址:https://www.cnblogs.com/sonictl/p/6735585.html
Copyright © 2011-2022 走看看