springMVC:
MVC:Model数据模型(包含数据的对象) View视图 Controller控制器
三层架构:Presentation tier展现层 Application tier应用层 Data tier数据访问层
注解:
声明普通bean时,使用component、service、repository、controller等同,都组合了Compoment元注解
controller:声明为spring的一个bean,Dispatcher Servlet自动扫描此注解的类,并将web请求映射到注解了@RequestMapping的方法上
在spring MVC声明控制器bean只能用controller
requestMapping:映射web请求(访问路径和参数)、处理类和方法,
responseBody:将返回值放在response体内,而不是返回页面
requestBody:容许request参数在request体中
pathVariable:接收路径参数
controllerAdvice:为controller添加全局配置,类上
方法上添加ExceptionHandler(Exception.class)处理这个异常
InitBinder设置WebDataBinder(绑定前台请求参数到Model)
1、对象初始化
2、类型转化:前台传到controller里的值是String类型的,int、data、bean需要转化
@InitBinder
protected void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
ModelAttribute:绑定键值对到Model中,让全局的@RequestMapping都获得此处设置的键值对
单独的controller中,注解在方法上访问此controller先按顺序走这些方法,
有返回值,返回值作为value保存到隐含的Model中,key为 “返回值首字母小写”,可指定(value="")
https://blog.csdn.net/lovesomnus/article/details/78873089
https://blog.csdn.net/qq924862077/article/details/53924606
https://blog.csdn.net/harry_zh_wang/article/details/57329613
https://www.cnblogs.com/Terry-Wu/p/8134732.html
ViewController:简化单纯界面跳转代码
springmvc路径中带.的话会有些问题,springboot貌似没有这个问题,不过还是了解下吧
configurePathMatch:
@Override
publicvoid configurePathMatch(PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(false)
.setUseTrailingSlashMatch(true);
}
实体类属性字段
@NotEmpty 用在集合类上面;不能为null,而且长度必须大于0
@NotBlank 用在String上面;只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
@NotNull 用在基本类型上;不能为null,但可以为empty
jackson:支持对象和json、xml转换
@RequestMapping(value="/get",produces={"application/json;charset=UTF-8"})返回json
@RequestMapping(value="/get",produces={"application/xml;charset=UTF-8"})返回xml
谢谢大家的分享