这章讲解一下springmvc的数据回显和自定义异常处理器的使用,两个都很简单

                  --WH

一、数据回显技术

      Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显

      1.1、什么是数据回显?

        在信息校验时,如果发生校验错误,那么把校验的数据信息,依然停留在当前页面,这就是数据回显

      1.2、pojo的数据回显

        Springmvc会把形参中pojo参数,放到request域中,key为pojo参数的类型首字母小写,也就是如果pojo参数为 Items items,那么就会将其items放到request域中,相当于request.setAttribute("items",items);  key为pojo参数类型首字母小写的意思就是这

        如果想使用pojo的默认回显,那么jsp中获取值的key就应该和pojo参数的类型首字母小写保持一致即可。      

      1.3、默认回显案例

        controller

          

        jsp页面

          

        分析:按照1.2的分析过程,就可以理解这里为什么会回显了,原因springmvc会将形参中的items放入request域中,并且key为items。而jsp中的对应这request作用域中的key值就自然可以获取到相应的数据了。

      1.4、使用注解显式完成回显  

        使用ModelAttribute注解来完成数据回显,它有两种用法:暴露形参到request域、暴露返回值到request域

        1.4.1、暴露形参到request域

          将@ModelAttribute("XXX")注解加在想要回显的形参的pojo对象前面,如下图所示

          controller方法

            

          @ModelAttribute("item")的意思就是将该对象放入request作用域中,并且key为指定的item,则在跳转后的页面中就可以通过${item.xxx}来获取各种数据了。

          

          jsp页面

            

        1.4.2、暴露返回值到request域

          将ModelAttribute注解加到方法上时,这个方法就会在requestmapping之前被调用,并且将返回的对象放入request作用域中。举例说明这个

          controller

            

            在controller类中,创建一个新的方法itemsType,在其方法上加上 @ModelAttribute("itemsType")就会将其返回的对象放入request域中,并且key为自己设定的itemsType,该方法则会在requestmapping之前被调用,也就是在每个要执行的处理方法之前被调用。这个方法中创建的一个map对象,然后返回放入request作用域,没有任何实际的意义,目的就是为了说明这个效果,一般我们直接使用默认的数据回显即可,即使需要改动key值,那么也可以使用第一种方案。

          jsp页面

            

      1.5、数据回显总结

        一般直接使用默认数据回显即可,如果需要改变key,使用注解回显的第一种方式,这里我们只是了解一下springmvc回显的原理,理解为什么会回显就够了。别遇到了看不懂即可。

二、自定义异常处理器

      写这个自定义异常处理器的目的就是为了发生异常的,我们能够提供一个更友好的页面,而不是返回一个404或者500的错误提示页面给用户看,所以需要自定义一个异常处理器,等发生异常时,我们能够捕捉到,并且做一定的事情。

      2.1、自定义异常

        首先自己定义一个异常类,该异常类很简单,就用来存储一下异常信息的。内容如下

        BusinessException.java

          

      2.2、自定义异常处理器

        该处理器就处理一个业务逻辑:如果捕捉到自定义异常,那么久把自定义异常的错误信息取出。如果捕捉到运行时异常,那么就给出一个错误信息“未知错误"。        

        BusinessExceptionResolver

          

      2.3、配置异常处理器

        就是覆盖原先默认的异常处理器,没配置就是使用默认的,默认的就是系统自带的。拿到了异常就直接按我们经常显示404或者500或者别的错误信息的页面返回。但是通过我们上面自定义的异常处理器,当有异常时就捕捉到(为什么能捕捉到呢?所以为了让其能够捕捉到,所以我们需要配置我们自定义的异常处理器,这样有了异常才会交给它来处理),然后进行处理,然后在转到我们专门显示错误的页面

          

          

      2.4、错误页面

        随便配置一个,用来显示错误信息即可,要美化等其他的就另说

        error.jsp

          

      2.5、异常测试

        在controller类中的方法抛出一个自定义异常即可,然后访问该方法,看结果是不是跳转到了我们期望的错误页面,

          

        或者抛出一个运行时异常,测试我们编写的异常处理器是否按我们的理想中状态进行下去。

三、总结

      数据回显懂原理即可,自定义异常处理器需要的时候要知道如何配置即可。

springmvc(五) 数据回显与自定义异常处理器的更多相关文章

  1. SpringMVC学习(四)———— 数据回显与自定义异常处理器

    一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什么是数据回显? 在信息校验时,如果发生校验错误,那么把校验的数据信息,依然停留在当前页面, ...

  2. SpringMVC由浅入深day02_5数据回显_6异常处理器

    5 数据回显 5.1 什么数据回显 表单提交失败需要再回到表单页面重新填写,原来提交的数据需要重新在页面上显示. 5.2 pojo数据回显方法 1.springmvc默认对pojo数据进行回显. po ...

  3. SpringMVC学习--数据回显

    简介 表单提交失败需要再回到表单页面重新填写,原来提交的数据需要重新在页面上显示. 简单数据类型 对于简单数据类型,如:Integer.String.Float等使用Model将传入的参数再放到req ...

  4. SpringMVC第五篇【方法返回值、数据回显、idea下配置虚拟目录、文件上传】

    Controller方法返回值 Controller方法的返回值其实就几种类型,我们来总结一下-. void String ModelAndView redirect重定向 forward转发 数据回 ...

  5. springMVC学习(8)-数据回显

    什么是数据回显: 提交后,如果出现错误(或者别的情况),将刚才提交的数据回显到刚才的提交页面. pojo数据回显方法: 一.springmvc默认对pojo数据进行回显. 比如现在的jsp页面提示出现 ...

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

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

  7. SpringMVC【参数绑定、数据回显、文件上传】

    前言 本文主要讲解的知识点如下: 参数绑定 数据回显 文件上传 参数绑定 我们在Controller使用方法参数接收值,就是把web端的值给接收到Controller中处理,这个过程就叫做参数绑定.. ...

  8. springMVC参数绑定与数据回显

    简单例子:修改商品信息的jsp页面: 参数绑定过程: 1.2.1  默认支持的参数类型 处理器形参中添加如下类型的参数处理适配器会默认识别并进行赋值. 1.1.1     HttpServletReq ...

  9. SpringMVC的数据回现

    一.什么是数据回显 数据提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面. 二.pojo数据回显方法 1.springmvc默认对pojo数据进行回显. pojo数据传入controller ...

随机推荐

  1. VirtualBox 共享文件夹设置及使用方法

    工具:VirtualBox,ubuntu14.04 1.选择要设置共享文件夹的虚拟机,点击设置 点击共享文件夹,新建文件夹,选择路径 2.打开虚拟机,从上方工具栏中找到设备,然后点击安装增强功能(由于 ...

  2. iOS12系统应用开发发送邮件

    iOS12系统应用开发发送邮件 消息分享是应用社交化和营销的重要途径.除了开发者自己搭建专有的消息分享渠道之外,还可以借助系统自带的各种途径.iOS提供了3种快速分享消息的方式,分别为发送邮件.发送短 ...

  3. async函数

    async函数的实现原理,就是将Generator函数和自动执行器,包装在一个函数里.async函数返回Promise对象,async函数的return值是then方法的参数,await后跟Promi ...

  4. RESTful restful api Representational State Transfer

    通俗直白讲:REST是一种编写风格,一种API接口规范.它的风格就是将对象(如学生)的状态(如增删改查,API接口版本号等等)通过其他方式传递,API的接口地址突显出描述的对象. -- == REST ...

  5. Shell脚本笔记(六)呈现数据

    呈现数据 一.文件描述符 Linux系统将每个对象当做文件处理,这包括输入和输出进程.Linux用文件描述符来标识每个文件对象.每个进程最多可以有9个 文件描述符,bash shell保留了前三个文件 ...

  6. JDK提供的几种线程池比较

    JDK提供的几种线程池 newFixedThreadPool创建一个指定工作线程数量的线程池.每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中. ...

  7. C#_02.14_基础五_.NET类

    C#_02.14_基础五_.NET类 一.类实例: 我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是 ...

  8. Firefly-RK3399笔记

    有用的连接: Rockchip官方资料: http://opensource.rock-chips.com/wiki_Main_Page http://opensource.rock-chips.co ...

  9. 我的第一个 react redux demo

    最近学习react redux,先前看过了几本书和一些博客之类的,感觉还不错,比如<深入浅出react和redux>,<React全栈++Redux+Flux+webpack+Bab ...

  10. win7下Google谷歌浏览器上传下载卡死无响应

    问题背景:win7,谷歌浏览器上传选择图片之后,页面卡死无响应. 以前解决过类似问题就是input type="file"的accept属性当为通配符时,会出现这种情况,改为具体的 ...