SpringMVC ------處理模型數據

    Spring MVC提供瞭如下幾種途徑輸出模型數據:
java

        -- ModelAndView:處理方法返回值類型爲ModelAndView時,方法體便可經過該對象添加模型數據。
spring

        --Map及Model:入參爲org.springframework.ui.Model、org.springframework.ui.ModelMap或java.uti.Map時,處理方法返回時,Map中的數據會自動添加到模型中。session

        --@SessionAttributes:將模型中的某個屬性暫存到HttpSession中,以便多個請求之間能夠共享這個屬性到Httpsession中,以便多個請求之間共享這個屬性。
app

        --@ModelAttribute :方法入參標註該註解後,入參的對象就會放到數據模型中。
jsp

@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
    String viewName = "success";
    ModelAndView modelAndView = new ModelAndView(viewName);
    //添加模型數據到ModelAndView 
    modelAndView.add("time",new Date());
    return modelAndView;
}

 頁面獲取參數jsp頁面ui

$(requestScope.time)

  從這裏能夠看出來,SpringMVC會把ModelAndView的model中數據放入到request域對象中。
code

2、Map 及 Model使用
對象

    SpringMVC在調用方法前會建立一個隱含的模型對象做爲模型數據的存儲容器。
開發

    若是方法的入參爲Map或Model類型。SpringMVC會將隱含類型的引用傳遞給這些入參,在方法體內,開發者能夠經過這個入參對象訪問到模型中的全部數據,也能夠像模型中添加新的屬性數據。
io

@RequestMapping("/testMap")
public String testMap(Map<String,Object> map){
    map.put("names",Arrays.asList("tome","jack',"mike"));
    return "success";
}

    調用模型數據的方法同ModeAndView 同樣,數據都放到了request域對象中。

3、@SessionAttributes

    在控制器類上標註一個@SessionAttributes,SpringMVC將在模型中對應的屬性暫存到HttpSession中。

    @SessionAttributes除了能夠經過屬性名指定須要放到會話中的屬性外,還能夠經過模型屬性的對象類型指定哪些模型屬性須要放到會話中

    --@SessionAttributes(types=User.class)會將隱含模型中全部類型爲User.class的屬性添加到會話中。

    --@SessionAttributes(value={"user1","user2"})

    --@SessionAttributes(type={User.class,Dept.class})

    --@SessionAttributes(value={"user1","user2"},types{String.class})

@SessionAttributes(value={"user2"},types="String.class")
@Controller
public class SpringMVCTest{
    @RequestMappping("/test/sessionAttribute")
    public String testSessionAttribute(Map<String ,Object> map){
        User user = new User("tom","123","tom@163.com",12);
        map.put("user",user);
        map.put("name","tom");
        return "success";
    }
}

    這裏將會把Map集合中的數據保存到Request和Session域對象中,獲取Session模型數據

    

$(requestScope.user)
$(sessionScope.user)
$(requestScope.name)
$(sessionScope.name)
相關文章
相關標籤/搜索