zoukankan      html  css  js  c++  java
  • 异常以及类型转换

       异常处理器 

     <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <property name="defaultErrorView" value="error"></property>
            <property name="exceptionAttribute" value="ex"></property>
        </bean>

       

          这里是在spring的xml文件中写     ,  之中使用了视图解析器,error是错误跳转的页面, 

    <property name="defaultErrorView" value="error"></property>    

     <property name="exceptionAttribute" value="ex"></property>

    这个是异常的对象,el表达式 ,页面使用输出异常对象


    2 自定义异常处理
    <body>
    <h2>登录</h2>
    <form action="/lp" method="post">
        用户名: <input name="username" value="${username}"/>
        年龄: <input name="age"/>
        出生日期: <input name="birthday"/>
    
        <input type="submit" value="登录"/>
    </form>
    </body>
    
    
        @RequestMapping("/login")
        public  String  log(String username,int age) throws Exception {
            System.out.println("adadadda");
            if(!username.equals("admin")){
                System.out.println("aaa");
                throw  new NameException("名字错了");
            }
    
            if(age>60){
                System.out.println("bbb");
                throw new AgeException("年龄错了");
            }
    
            return "ax";
        }

    下面把异常类说一下 

    public class AgeException extends Exception{
        public AgeException() {
        }
    
        public AgeException(String message) {
            super(message);
        }
    }
    public class NameException extends Exception {
    
        public NameException() {
    
        }
    
        public NameException(String message) {
            super(message);
        }
    }

       这是我们自己的异常 

     <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <!--<property name="defaultErrorView" value="error"></property>-->
            <property name="exceptionAttribute" value="ex"></property>
            <property name="exceptionMappings">
                <props>
                    <prop key="springmmv.exception.NameException">age</prop>
                    <prop key="springmmv.exception.AgeException">name</prop>
    
                </props>
            </property>
        </bean>

    把异常跳转的页面定义好就行 

      

     自定义异常处理器 

     */
    public class text implements HandlerExceptionResolver {
        public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
            ModelAndView mv=new ModelAndView();
            mv.addObject("ex",e);
            if(e instanceof NameException){
             mv.setViewName("name");
            }
            if(e instanceof AgeException){
             mv.setViewName("age");
            }
    
            return mv;
        }
    }

    之后在spring中加入一行这个的配置文件就行,就是以他为class的bean  

    类型转换  

    Data 的各种处理 

     <bean id="dg" class="springmmv.cn.news.Conver"></bean> 为转换器的类 
     <bean id="dg" class="springmmv.cn.news.Conver"></bean>
    
        <bean id="jk" class="org.springframework.context.support.ConversionServiceFactoryBean">
            <property name="converters" ref="dg"></property>
        </bean>
    
        <mvc:annotation-driven conversion-service="jk"/>
    public class Conver implements Converter<String,Date> {
        public Date convert(String str) {
            SimpleDateFormat sa=gets(str);
            try {
                Date date=sa.parse(str);
                return date;
            } catch (ParseException e) {
                e.printStackTrace();
            }
    
            return null;
        }
    
        public SimpleDateFormat gets(String string){
            SimpleDateFormat sm=new SimpleDateFormat("yyyy年MM月dd日");
    
            if(Pattern.matches("^\d{4}-\d{2}-\d{2}",string)){
                sm=new SimpleDateFormat("yyyy-MM-dd");
            }else if(Pattern.matches("^\d{4}/\d{2}/\d{2}",string)){
                sm=new SimpleDateFormat("yyyy/MM/dd");
            }else if(Pattern.matches("^\d{4}\d{2}\d{2}",string)){
                sm=new SimpleDateFormat("yyyyMMdd");
            }
    
    
    
            return sm;
    
        }
    }

    这个就是类型转换的类 

    使用这个的时候,传过来的数值就会自动转换,避免400吧 。 












  • 相关阅读:
    php基本语法与安装
    面向对象编程 es5和es6的构造函数
    利用正则搜索替换
    正则特殊符号
    正则边界符 限定符
    面试官给我挖坑:rm删除文件之后,空间就被释放了吗?
    为什么 IPv6 难以取代 IPv4
    Docker系列教程04-Docker构建镜像的三种方式
    Docker系列教程03-Docker私有仓库搭建(registry)
    Linux-I/O模型详解
  • 原文地址:https://www.cnblogs.com/LWLDD/p/8679201.html
Copyright © 2011-2022 走看看