当前位置:文档之家› SpringMVC讲义ppt:第3章 Spring MVC的常用注解

SpringMVC讲义ppt:第3章 Spring MVC的常用注解


addAttribute(String attributeName , Object attributeValue)
Model和ModelMap使用示例
@ModelAttribute修饰的userModel方法会先于login调用,它把请求参数值赋给对应变量, 可以向方法中的Model添加对象,前提是要在方法签名中加入一个Model类型的参数
信息转换
在web应用程序中,客户端浏览器和服务器端存在着大量的信息交换,数据传输的格式也 多样化:纯文本字符串、xml、json、java对象等。数据从一处传递到另一处,通常需要进行 格式的转换。而对于web服务器端的spring框架而言,通常情况下需要如下的信息转换: (1)将http请求中携带的数据(xml或json格式)转换为java POJO对象; (2)将POJO对象绑定到请求处理方法的参数中; (3)将POJO对象输出到响应信息中 Spring MVC框架中定义了HttpMessageConvert<T>接口,也提供了这个接口的多个实现类, 通过这些类(或第三方实现类),程序员可以方便地实现信息转换。这些实现类有:
var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串 JSON 和 JS 对象互转 要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法: var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}' 要实现从 JSON 转换为对象,使用 JSON.parse() 方法: var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}
@RequestMapping({“hello1”, “h也可以是一个空字符串,此时方法被映 射到网站项目根目录下
method属性
consumes属性
produces属性
params属性
headers属性
Referer表示用户从该URL代表的页面出发访问当前请求的页面
value属性
value属性:其属性值是URL地址,可以同时写上 多个URL地址:
@RequestMapping(value={“hello1”, “hello2”, “hello3”})
因为value是默认属性,当@RequestMapping只 设有value一个属性时,书写时可以省掉属性名:
请求处理方法可出现的参数类型
每个请求处理方法可以多个不同类型的参数
请求处理方法可返回的类型
每个请求处理方法以返回的类型:
Model和ModelAndView
在请求处理方法可出现和返回的参数类型中,最重要的就是Model和ModelAndView了。 对于MVC框架,控制器Controller执行业务逻辑,用于产生模型数据(Model),而视图(View) 则用于渲染模型数据。 如何将模型数据传递给视图是Spring MVC框架的一项重要工作,Spring MVC提供了多 种途径输出模型数据,如:
@ModelAttributes注解
5、用@ModelAttributes注释一个请求处理方法的参数:
userModel5( )方法会先于login5( )方法被调用,在userModel5( )方法中生成user对象并添加 到model中,用属性user来标识,而在login5( )方法中,@ModelAttribute(“user”)注释的形参 变量user会获取model中的这个user属性。
@ModelAttributes注解
4、@ModelAttributes和@RequestMapping注释同一个方法: 例如: @ModelAttribute(value=“username”) @RequestMapping(value=“/login4”) public String login4( ){return “admin”;} 此时login4方法的返回值并不是一个视图名称,而是model对象中”username”属性的属性值, 而视图名称则取@RequestMapping注解中的URI:/login4,即最终会定位到login4.jsp页面。
@ModelAttributes注解
2、使用形式为@ModelAttributes,所修饰的方法的返回值为void: 例如: @ModelAttribute public void userModel(…,Model model){………………model.addAttribute(……);} 这表示在Model对象中加入的属性名称和值都由model.addAttribute(……);来决定。
第3章 Spring MVC的常用注解
@Controller注解
示例:HellowWorldController类
Springmvc-config.xml
经过视图解析后,视图的完整路径为: /WEB-INF/content/helloWorld.jsp
@RequestMapping注解
@RequestMapping注解支持的属性
信息转换
信息转换
信息转换
什么是JSON格式
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。 JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。 如
var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
示例:接收JSON格式的数据
使用fastjson来接收json格式的数据
使用fastjson来返回json格式的数据
转换XML数据
接收http请求中的XML数据
综合案例:动态刷新评论内容
1、使用形式为@ModelAttributes(value=“名称1”),所修饰的方法的返回值类型为某个具体类 例如: @ModelAttribute(“user”) public User userModel(……){………………return userObject;} 这表示会在Model中加入的属性值是userObject,属性名为”user”。
URI Controller View
/{formname}
loginForm( formName )
{formname}.jsp
/login
login(loginname, password, model )
welcome.jsp
@ModelAttributes注解
@ModelAttributes注解的用法有多种形式:
get: /user/register
registerForm( )
registerForm.jsp
post: /user/register 参数:loginname 、password、username
register(loginname, password, username )
loginForm.jsp
/user/login 参数:loginname、password
login(loginname, password )
welcome.jsp
@PathVariable注解
@RequestHeader注解
@CookieValue注解
@SessionAttributes注解
@SessionAttributes注解示例
ModelAndView
@RequestParam注解
该注解的原型类是org.springframework.web.bind.annotation.RequestParam,用于将指定 请求参数赋值给方法中的形参
@RequestMapping注解和@RequestParam注解示例
URI Controller View
3、使用形式为@ModelAttributes,所修饰的方法的返回值为为某个具体类: 例如: @ModelAttribute
public User userModel(……){………………return userObject;}
这表示在Model对象中加入的属性值是userObject,属性名为user(userObject对象所属类型 名的小写字母形式)。
转换JSON数据
示例:接收JSON格式的数据
示例中前端引用了jQuery库和json库,后端(服务器端)除了引用spring库外,还 引用了jackson库。 在前端json库中定义了一个JSON对象,通过该对象可以很方便地对json进行操作。 springmvc-config.xml配置文档需要增加一些配置信息:
相关主题