视图技术(模板引擎)
- FreeMaker
- Groovy
- Thymeleaf
- Mustache
- Beetl
- Velocity
重定向前缀 - Redirect
在Controller里使用,可以在指定方法中跳转到其他地址;
例如:return “redirect:/ndex” - Forward
在Controller里使用,可以在指定方法中继续调用其他Controller方法;
例如:return “forward:index”
Redirect与Forward的区别
一、数据共享方面
forward:转发页面和转发到的页面可以共享request里面的数据
redirect:不能共享数据
二、地址栏显示方面
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个UR绿的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来的,所以他的地址栏还是原来的地址。
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器冲新区请求那个地址,所以地址栏显示的是新的URL.
Jackson
-
通过树遍历解析JSON
树遍历:
树遍历相关: -
可以处理的数据:
字符串、字节数组、文件、InputSteam等
放回JsonNode为根节点,可以像操作XML Dom那样操作遍历JsonNode以获取数据。 -
获取数据的方法‘’
asXXX:获取指定类型值,比如asText\asBoolean\asInt等
isArray:判断JsonNode是否为数组。如果是,可以调用get(i)进行遍历,通过size()获取长度;
get(String):获取当前节点的子节点。 -
通过对象绑定解析JSON
对象绑定: -
通过流式操作解析JSON
流式解析JSON:
流式生成JSON:
-
常用注解
Jackson注释: -
@JsonProperty用于为JSON Key指定别名
如:@JsonProperty(“userName”) -
@Jsonlgnore用于忽略指定属性
-
@JsonlgnoreProperties用于在类上忽略一组属性
如:@JsonlgnoreProperties({“remark”,“photo”}) -
@JsonAnySetter用于标记在方法上,接收key和value参数,在找不到对应的属性时调用此方法;
-
@JsonAnyGetter用于标记在返回Map的方法上,Jackson会取出Map序列化
-
@JsonFormat用于对日期格式化
如:@JsonFormat(pattern=“yyyy-MM-dd HH;mm;ss”) -
集合反序列化
- 使用@RequestBodey注释的参数进行序列化
- 直接在方法中对包含集合的json字符串进行