Spring框架MVC-1基础知识

it2025-08-24  1

所需要jar包

@RequestMapping除了修饰方法,还可来修饰类 1.类定义处:提供初步的请求映射信息。相对于WEB应用的根目录 2).方法处:提供进一步的细分映射信息。相对于类定义处的URL.若类定义处未标注@RequestMapping, 则方法处标记的URL相对于WEB 应用的根目录

method:设置请求方法:

params:设置参数信息,如下:必须有username和age参数,且age不能为10.

headers:设置头信息

@PathVariable可以来映射URL中的占位符到目标方法的参数中.

把POST请求转为DELETE或POST请求

get:查、put:更新、post:添加、delete:删除

如何发送PUT请求和DELETE请求呢? 1.需要配置HiddenHttpMethodFilter 2.需要发送POST请求 3.需要在发送POST请求时携带一个name="_ method" 的隐藏域,值为DELETE 或PUT 在SpringMVC的目标方法中如何得到id呢? 使用@PathVariable注解获取地址栏参数

@RequestParam 来映射请求参数。  @RequestHeader   @CookieVaule用法相同 value 值即请求参数的参数名 required该参数是否必须。默认为true defaultValue 请求参数的默认值

Spring MVC会按请求参数名和POJO属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。 如: dept. deptId、dept. address.tel等

可以使用Serlvet原生的API作为目标方法的参数具体支持以下类型 HttpServletRequest HttpServletResponse HttpSession java .security. Principal Locale InputStream OutputStream Reader Writer

处理模型数据:

目标方法的返回值可以是ModelAndView类型。其中可以包含视图和模型信息。 SpringMVC会把ModelAndView的model中数据放入到request域对象中。

目标方法可以添加Map类型(实际上也可以是Model类型或ModelMap类型)的参数。

@SessionAttributes除了可以通过属性名指定需要放到会话中的属性外(实际上使用的是value属性值),还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中(实际上使用的是types属性值)注意:该注解只能放在类的上面。而不能修饰放方法。

场景:当我们想要修改数据库中的数据(姓名,年龄,密码),但是不想修改密码,

常规方式:new一个对象里面有新姓名,新年龄,然后插入到数据库中,但是这会造成密码的值为null,

优雅的方式:从数据库中先查询出该条数据,然后将新对象的值赋值进去。 有@ModelAttribute标记的方法,会在每个目标方法执行之前被SpringMVC调用!

运行流程: 1.执行@ModelAttribute注解修饰的方法:从数据库中取出对象,把对象放入到了Map中。键为: user 2. SpringMVC 从Map中取出User对象,并把表单的请求参数赋给该User对象的对应属性. 3. SpringMVC把上述对象传入目标方法的参数.注意:在@ModelAttribute 修饰的方法中, 放入到Map时的键需要和目标方法入参类型的第一 个字母小写的字符串一致!

注意: 1、attrName. 若目标方法的P0JO属性使用了@ModelAttribute来修饰,则attrName值即为@ModelAttribute的value属性值 2、若不存在:则验证当前Handler 是否使用了@SessionAttributes 进行修饰,若使用了,则尝试从Session中获取attrName所对应的属性值。若session中没有对应的属性值,则抛出了异常。 3、SpringMVC会把WebDataBinder的attrName和target给到implicitModel.近而传到request域对象中。

SpringMVC 确定目标方法P0JO类型入参的过程:

最新回复(0)