与Spring AOP一样,Spring MVC也能够给控制器加入通知,它主要涉及4个注解: •@ControllerAdvice,主要作用于类,用以标识全局性的控制器的拦截器,它将应用于对应的控制器. •@InitBinder,是一个允许构建POJO参数的方法,允许在构造控制器参数的时候,加入一定的自定义控制. •@ExceptionHandler,通过它可以注册一个控制器异常,使用当控制器发生注册异常时,就会跳转到该方法上. •@ModelAttribute,是一种针对于数据模型的注解,它先…
Spring MVC中控制器接受参数的类方式有以下几种: 普通参数:只要保证前端参数名称和传入控制器的参数名称一致即可,适合参数较少的情况: pojo类型:如果前端传的是一个pojo对象,只要保证参数名称和pojo属性一致即可: 注解方式:当前端参数名和控制器名称不一致时可以使用注解方式,比如前端是param_id,而控制器中是paramId的情况: URL方式:当前端以restful格式传递参数时,后台使用这种方式接受: JSON方式:前后端如果用json方式交互时,可以使用这种方式,这是常用…
有些场景下需要向后台传递一个数组,比如批量删除传多个ID的情况,可以使用数组传递,数组中的ID元素为简单类型,即基本类型. 现在我的测试场景是:要从数据库中查询minId<id<maxId且id!=noId的数据,所以我需要向后台传递的参数有minId.maxId.noId,这三参数通过数组传递到后台,步骤如下: 1.创建页面 为了简单起见,在页面我只创建了一个按钮去触发查询这个操作,用来传递参数. <%@ page language="java" contentTy…
上一篇中提到,当前后端命名规则不一致时,需要通过注解@RequestParam接受参数,这个注解是作用在参数上.下面通过实例说明,场景如下: 在页面输入两个参数,控制器通过注解接受,并将接受到的数据渲染到新的视图.所以首先来创建输入参数页面,然后创建控制器,再创建对应的响应视图. 1.创建输入参数页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding=&qu…
以pojo的方式传递参数适用于参数较多的情况,或者是传递对象的这种情况,比如要创建一个用户,用户有十多个属性,此时就可以通过用户的pojo对象来传参数,需要注意的是前端各字段的名称和pojo对应的属性名称必须一致,否则就会失败.废话不说,直接用代码举例了,我的场景是这样的: 从页面输入四个字段,控制器通过pojo的方式接受,然后将接受到的数据渲染到新的页面,即在新的页面获取刚才传过去的值. 1.创建参数页面 <%@ page language="java" contentType…
前一篇文章介绍是传递一个参数列表,列表中的元素为基本类型,其实有时候需要传递多个同一类型的对象,测试也可以使用列表,只是列表中的元素为对象类型. 我模拟的场景是:通过页面按钮触发传递参数的请求,为了简单起见将需要传递的对象列表写死,然后渲染到JSON视图中,在前端查看获取到的参数是不是传过去的值. 1.创建触发请求页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc…
${key }页面可取, <input value="${key}"> 或者<%=request.getParameter("key")%>…
月 26, 2019 2:47:58 上午 org.apache.coyote.AbstractProtocol start信息: Starting ProtocolHandler ["ajp-nio-8009"]二月 26, 2019 2:47:58 上午 org.apache.catalina.startup.Catalina start信息: Server startup in 78352 msDEBUG [http-nio-8080-exec-6] - GET "/r…
1. 问题的现象 比如在webConfig中定义了一个viewResolver public class WebConfig extends WebMvcConfigurerAdapter { //配置JSP视图解析器 @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("W…