spring mvc 框架的基础条件 2

本文介绍如何在Spring MVC中实现异常拦截并跳转到错误页面的方法,同时展示了如何通过实现WebBindingInitializer接口来初始化请求数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 每一个应用,应该都会出现异常,那么在就有必要做一个异常拦截机制,那么在controller层就可以把异常抛出去,然后让该异常跳转到相应的页面


   1 异常拦截,spring 有一个一次拦截接口,因此可以写一个类,实现该接口,然后处理业务的异常流程
    
    public class MyHandlerException implements HandleExceptionResolver{
       public ModelAndView resolveException(HttpServletRequest request,HttpServletResponse response,Object obj){
          system.out.println("异常拦截");
          return new ModelAndView("redirect:/errorJsp");
       }
    }




  在servlet.xml 里面配置 该异常的处理 


    <bean id=“myHandlerException”class="web.MyHandlerException" />




    在建一个 errorJsp的controller 让其跳转到指定的错误页面即可 


  2 在应用访问的时候 肯定需要初始化一些数据,那么就需要写一个类,实现spring自定义的接口 WebBindingInitializer 
    
     public class commandBindInit implements WebBindingInitializer {


        @override
        public void initBinder(WebDataBinder binder,WebRequest request){
             BaseCommand baseCom = (BaseCommand)binder.getTarget();
             if(baseCom !=null){
                baseCom.setUserIp("127.0.0.1");
             }
             
         }


     }


   public class BaseCommand {


      private String userIp;


   }






    以上写完之后,需要在servlet.xml里面添加下面配置,CommandBindInit类才能够实现初始化
     
     <bean class="org.springframework.web.servlet.mvc.annotaion.AnnotationMethodHandlerAdapter">
        <property name="WebBindingInitializer">
           <bean class="web.CommandBindInit" />
        </property>


        <property name="messageConverters">
          <list>
             <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                 <property name="supportedMediaTypes">
                     <list><value>text/html;charset=UTF-8</value></list>
                 </property>
                 <property name="writeAcceptCharset" value="false">
                 </property>
              </bean>
          </list>
          
        </property>
     </bean>






     添加以上配置后发现还是不能初始化信息,调查发现 需要将servlet.xml里面的 <mvc:annotation-driven /> 放到 CommandBindInit 配置的后面方可以使用











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值