SpringMVC学习笔记——处理数据模型(ModelAndView)

第一种处理数据模型——ModelAndView

通过ModelAndView,放入一些对象,返回它,即可传递参数给前端,示例代码如下:

    /**
     * 目标方法的返回值可以是ModelAndView类型.
     * 其中可以包含视图和模型信息.
     * SpringMVC会把ModelAndView的model中的数据放入到request域对象中.
     */
    @RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView() {
        String viewName = SUCCESS;
        ModelAndView modelAndView = new ModelAndView(viewName);
        // 添加模型数据到ModelAndView中
        modelAndView.addObject("time", new Date());
        return modelAndView;
    }

第二种处理数据模型——Map/Model/ModelMap

目标方法的入参使用Map/Model/ModelMap,也可以进行数据的传递,代码如下:

    /**
     * 比较常用:
     * 目标方法可以添加Map类型(实际上也可以是Model类型或ModelMap类型)的参数
     */
    @RequestMapping("/testMap")
    public String testMap(Map map) {
        System.out.println(map.getClass().getName());
        map.put("names", Arrays.asList("Tom", "Jerry", "Mike"));
        return SUCCESS;
    }
<body>
    names:${requestScope.names }
body>

@SessionAttribute

前面都是放在请求域里面,当然也可以放在Session中。
注解位置:类定义处
示例代码如下:

@SessionAttributes(value = { "user" }, types = { String.class })
@RequestMapping("/springmvc")
@Controller
public class SrpingMVCTest {

    private static final String SUCCESS = "success";

    /**
     * @SessionAttributes 除了可以通过属性名(values)指定需要放到会话中的属性外,
     * 还可以通过模型属性的对象类型(types)指定哪些型属性需要放到会话中
     * 
     * 注意 : 该注解只能放在类的上面,而不能修饰方法
     */
    @RequestMapping("/testSessionAttributes")
    public String testSessionAttributes(ModelMap modelMap) {
        User user = new User("Tom", "123456", "[email protected]", 15, null);
        modelMap.addAttribute("user", user);
        modelMap.addAttribute("schoole", "schoole");
        return SUCCESS;
    }
}
<body>
    request user:${requestScope.user }
    <br>br>

    session user:${sessionScope.user }
    <br>br>

    request schoole:${requestScope.schoole }
    <br>br>

    session schoole:${sessionScope.schoole }
    <br>br>
body>

其中,可以指定values,来指定数据的Key。也可以指定types,来指定数据的类型,满足类型的都可以放入。

你可能感兴趣的:(spring-mvc,SSM学习之路)