6、数据处理
6.1、处理地址栏数据
新建一个Controller
@RestController
public class DataController {
}
- 当提交的数据名和处理接受的参数一致时。
@RequestMapping("/data/t1")
public void t1(String name) {
System.out.println(name);
}
2. 当提交的数据名和处理接受的参数不一致时。
@RequestMapping("/data/t2")
public void t2(@RequestParam("username") String name) {
System.out.println(name);
}
3. 获取一个对象
@RequestMapping("/data/t3")
public void t2(User user) {
System.out.println(user);
}
说明:如果使用对象的话,前端传递的参数名和对象名必须一致,否则就是null。
6.2、将数据显示到前端
- 通过ModelAndView对象
public class ControllerTest1 implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//返回一个模型视图对象
ModelAndView mv = new ModelAndView();
mv.addObject("msg","ModelAndView");
mv.setViewName("test");
return mv;
}
}
- 通过ModelMap
ModelMap
@RequestMapping("/hello")
public String hello(String name, ModelMap model){
model.addAttribute("name",name);
System.out.println(name);
return "hello";
}
- 通过Model
@RequestMapping("/hello1")
public String hello(String name, Model model){
model.addAttribute("msg",name);
System.out.println(name);
return "test";
}
6.3、对比
现阶段初级使用区别就是:
Model
只有寥寥几个方法,只适合用于储存数据,简化了对于Model
对象的操作和理解;ModelMap
继承了LinkedMap
,除了实现了自身的一些方法,同样的继承LinkedMap
的方法和特性;ModelAndView
可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。
6.4、SpringMVC解决乱码问题
乱码问题是每一个后端程序员都会遇到的问题,SpringMVC提供了一种机制帮我们解决乱码问题,我们需要在web.xml中配置。
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
配置web.xml后,不要忘了重启Tomcat。