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吧 。 












  • 相关阅读:
    Getting Started with Recovery Manager (RMAN) (文档 ID 360416.1)
    enctype的2个值
    laravel 去掉资源的顶层包裹 withoutWrapping方法
    hash_equals(),防止时序攻击,字符串比较函数
    moment.js 处理“几天前”,“几个月前”
    redis hash 应用场景
    vue 3个插槽示例(具名插槽)
    vue 插槽的基本使用
    redis hash
    redis 分布式系统全局序列号
  • 原文地址:https://www.cnblogs.com/LWLDD/p/8679201.html
Copyright © 2011-2022 走看看