java modelandview

作者:原创时间:2022-04-06
文档

java modelandview是什么,让我们一起了解一下?

modelandview是当控制器处理完请求时,会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherServlet。因此,经常需要在控制器中构造ModelAndView对象。ModelAndView类提供了几个重载的构造器和一些方便的方法,让你可以根据自己的喜好来构造ModelAndView对象。这些构造器和方法以类似的方式支持视图名称和视图对象。当你只有一个模型属性要返回时,可以在构造器中指定该属性来构造ModelAndView对象。

ModelAndView的使用方法是怎样的?

添加模型数据用addObject,设置视图setViewName。

ModelAndView 对象有两个作用:

1、设置转向地址,这也是ModelAndView和ModelMap的主要区别。设置方式如下所示:

ModelAndView view = new ModelAndView("path:student");

或者通过setViewName方式:

public void setViewName(String viewName){...}

2、将控制器方法中处理的结果数据传递到结果页面,也就是把在结果页面上需要的数据放到ModelAndView对象中即可,其作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:

public ModelAndView addObject(String attributeName, Object attributeValue){...}
public ModelAndView addObject(Object attributeValue){...}

在jsp中:也是可以通过el表达式语言 a t t r i b u t e N a m e 或 者 C 标 签 库 的 attributeName或者C标签库的 attributeName或者C标签库的{name } 来获取并展示ModelAndView中的数据。

实战操作,示例代码如下:

package com.itmyhome;  
  
import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  
  
import org.springframework.stereotype.Controller;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.servlet.ModelAndView;  
  
@Controller  
public class Login {  
  
    @RequestMapping(value="login")  
    public ModelAndView login(){  
        ModelAndView mav = new ModelAndView();  
        mav.setViewName("welcome"); //返回的文件名  
          
        mav.addObject("message","hello kitty");  
          
        //List  
        List list = new ArrayList();  
        list.add("java");  
        list.add("c++");  
        list.add("oracle");  
        mav.addObject("bookList", list);  
          
        //Map  
        Map map = new HashMap();  
        map.put("zhangsan", "北京");  
        map.put("lisi", "上海");  
        map.put("wangwu", "深圳");  
        mav.addObject("map",map);  
          
        return mav;  
    }  
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java module java monad java mono java mqtt java multiset java mvvm java mybatisplus java namespace java newinstance java nextint java nextline java nexus java nfs java geotools java getbytes java hashcode java hdfs java node类 java notify java nslookup java mockito java mmap java mkdir java mina java mian java method java merge java memcpy java matrix java matlab java math.ceil java mapping java malloc java main java logstash java logging java localtime java locale java list.contains java list.add