这章讲解一下springmvc的数据回显和自定义异常处理器的使用,两个都很简单java
--WZYspring
1、数据回显技术mvc
Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显app
1.一、什么是数据回显?jsp
在信息校验时,若是发生校验错误,那么把校验的数据信息,依然停留在当前页面,这就是数据回显测试
1.二、pojo的数据回显spa
Springmvc会把形参中pojo参数,放到request域中,key为pojo参数的类型首字母小写,也就是若是pojo参数为 Items items,那么就会将其items放到request域中,至关于request.setAttribute("items",items); key为pojo参数类型首字母小写的意思就是这3d
若是想使用pojo的默认回显,那么jsp中获取值的key就应该和pojo参数的类型首字母小写保持一致便可。 对象
1.三、默认回显案例blog
controller
jsp页面
分析:按照1.2的分析过程,就能够理解这里为何会回显了,缘由springmvc会将形参中的items放入request域中,而且key为items。而jsp中的对应这request做用域中的key值就天然能够获取到相应的数据了。
1.四、使用注解显式完成回显
使用ModelAttribute注解来完成数据回显,它有两种用法:暴露形参到request域、暴露返回值到request域
1.4.一、暴露形参到request域
将@ModelAttribute("XXX")注解加在想要回显的形参的pojo对象前面,以下图所示
controller方法
@ModelAttribute("item")的意思就是将该对象放入request做用域中,而且key为指定的item,则在跳转后的页面中就能够经过${item.xxx}来获取各类数据了。
jsp页面
1.4.二、暴露返回值到request域
将ModelAttribute注解加到方法上时,这个方法就会在requestmapping以前被调用,而且将返回的对象放入request做用域中。举例说明这个
controller
在controller类中,建立一个新的方法itemsType,在其方法上加上 @ModelAttribute("itemsType")就会将其返回的对象放入request域中,而且key为本身设定的itemsType,该方法则会在requestmapping以前被调用,也就是在每一个要执行的处理方法以前被调用。这个方法中建立的一个map对象,而后返回放入request做用域,没有任何实际的意义,目的就是为了说明这个效果,通常咱们直接使用默认的数据回显便可,即便须要改动key值,那么也可使用第一种方案。
jsp页面
1.五、数据回显总结
通常直接使用默认数据回显便可,若是须要改变key,使用注解回显的第一种方式,这里咱们只是了解一下springmvc回显的原理,理解为何会回显就够了。别遇到了看不懂便可。
2、自定义异常处理器
写这个自定义异常处理器的目的就是为了发生异常的,咱们可以提供一个更友好的页面,而不是返回一个404或者500的错误提示页面给用户看,因此须要自定义一个异常处理器,等发生异常时,咱们可以捕捉到,而且作必定的事情。
2.一、自定义异常
首先本身定义一个异常类,该异常类很简单,就用来存储一下异常信息的。内容以下
BusinessException.java
2.二、自定义异常处理器
该处理器就处理一个业务逻辑:若是捕捉到自定义异常,那么久把自定义异常的错误信息取出。若是捕捉到运行时异常,那么就给出一个错误信息“未知错误"。
BusinessExceptionResolver
2.三、配置异常处理器
就是覆盖原先默认的异常处理器,没配置就是使用默认的,默认的就是系统自带的。拿到了异常就直接按咱们常常显示404或者500或者别的错误信息的页面返回。可是经过咱们上面自定义的异常处理器,当有异常时就捕捉到(为何能捕捉到呢?因此为了让其可以捕捉到,因此咱们须要配置咱们自定义的异常处理器,这样有了异常才会交给它来处理),而后进行处理,而后在转到咱们专门显示错误的页面
2.四、错误页面
随便配置一个,用来显示错误信息便可,要美化等其余的就另说
error.jsp
2.五、异常测试
在controller类中的方法抛出一个自定义异常便可,而后访问该方法,看结果是否是跳转到了咱们指望的错误页面,
或者抛出一个运行时异常,测试咱们编写的异常处理器是否按咱们的理想中状态进行下去。
3、总结
数据回显懂原理便可,自定义异常处理器须要的时候要知道如何配置便可。