视图解析器ViewResolver
在spring.xml里面设置ViewResolver作用是可以简化逻辑视图的名称

没简化之前

简化之后

在spring-mvc.xml里面设置视图控制器的作用,如果你想访问根目录的话就会进入index.jsp里面,如果你想访问/tuling,就会进入main.jsp里面,path是写到地址栏里的

main.jsp里面的内容

main.jsp访问服务器演示

index.jsp里面的内容

index.jsp访问服务器演示


用servletapi的方式获取属性


在main.jsp中获取type数据


用model的方式获取属性


用modelmap的方式获取属性


使用map的方式获取属性


使用ModelAndView的方式获取属性方法里第一句是要传数据到那个jsp文件里传入的方法是通过构造函数的方式,mv.setViewName()是通过方法的方式设置要传入的jsp文件里,addObject是设置属性的名字和数据


通过servlet api的方式获取session的数据




通过自动注入的方式获取servlet api
选在外面声明HttpSession session
在加入@Atuowired注解再在方法中用就行

2.通过springmvc提供的注解方式去读写session
用@SessionAttributes()的方式把在model里的数据写入到注解里面
如注解里写入type,它回去model方法里面找type的属性如下下图然后设置到session里面


@SessionAttribute用在参数上面的,读取session的。如果session域中有个type属性的值,就会输出在控制台上如先访问上图的model在访问下图就或有model的值

如果session里面没有设置值还不想报错,可以设置required=false就会输出对应属性的空值

用@MdelArrtibute的方式获取session

先在用@ModelAttribute里面设置model属性的值

springmvc有个特性就是会将model里面的值和下面方法用user类的值合并,如果在客服端改了username的值不改别的话还会保留其他数据的值


如果就只有这一个方法的话springmvc还是会把user的值传到request里面的



@ModelAttribute使用场景和用法

线程安全问题
通过参数绑定的方式


通过自动注入的方式@AutoWired


通过@ModelAttribute的方式



同时进行请求一个请求a一个请求b会出现错误在@ModelAttribute注解

解决办法可以把变量设置到方法中也可以设置锁

转发和重定向在spring的写法
转发



我们配了视图解析器需要遵循这个原则

想不遵循视图解析器,如下图在前面写入forward

重定向,不能访问WEB-INF文件里面的内容只有转发能访问

