结果跳转方式
1.通过实现controller接口并通过视图解析器
ModelAndView
设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .
页面 : {视图解析器前缀} + viewName +{视图解析器后缀}
对应的controller类
2.直接通过ServletAPI
通过设置ServletAPI , 不需要视图解析器 .
1、通过HttpServletResponse进行输出
2、通过HttpServletResponse实现重定向
3、通过HttpServletResponse实现转发
3.通过SpringMVC
(1)通过SpringMVC来实现转发和重定向 - 无需视图解析器;
测试前,需要将视图解析器注释掉
(2)通过SpringMVC来实现转发和重定向 - 有视图解析器;
数据处理
1.处理要提交数据
前端—> 后台
1、提交的域名称和处理方法的参数名一致
提交数据 : http://localhost:8080/hello?name=zijian
处理方法 :
后台输出:zijian
2、提交的域名称和处理方法的参数名不一致
前端为username,对应到后端参数name
提交数据 : http://localhost:8080/hello?username=zijian
处理方法 :
后台输出:zijian
3、提交的是一个对象
要求提交的表单域和对象的属性名一致 , 参数使用对象即可
1、对应的实体类
2、提交数据 : http://localhost:8080/mvc04/user?name=zijian&id=1&age=15
处理方法 :
后台输出 : User { id=1, name=‘kuangshen’, age=15 }
说明:如果使用对象的话,前端传递的参数名和对象名必须一致,否则就是null。
2.数据显示到前端
后台--->前端(1)通过modelandview(实现controller接口)
(2)通过ModelMap
(3)通过Model(最常用)
3种方法对比
Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解;
ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;
ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。
乱码问题
以前乱码问题通过过滤器解决 , 而SpringMVC给我们提供了一个过滤器 , 可以在web.xml中配置 .
若以上过滤器不能解决,则再尝试:
(1)修改tomcat配置文件 :设置编码!
(2)自定义过滤器
网上找
然后在web.xml中配置这个过滤器即可!