4.剖析SpringMVC处理响应数据
[toc]
SpringMVC处理响应数据
几种途径输出模型数据:
Map
Model
ModelMap
MadelAndView
1. Map 和 Model 以及 ModelMap
SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面呢?
可以在方法处
传入Map、或者Model或者ModelMap
。给这些参数里面保存的所有数据都会放在请求域中。这样就可以在页面获取了
1 | /* |
Map
success.jsp页面能拿到username的值 taoge
1 |
|
Model
success.jsp页面能拿到username的值 huige
addAttribute
1 |
|
ModelMap
addAttribute
1 |
|
2. ModelAndView对象
控制器处理方法的返回值如果为 ModelAndView, 则其既包含视图信息,也包含模型数据信息,而且数据是放在请求域中
两个重要的成员变量:
private Object view; 视图信息
private ModelMap model; 模型数据
添加模型数据:
- MoelAndView addObject(String attributeName, Object attributeValue) 设置模型数据
- ModelAndView addAllObject(Map<String, ?> modelMap)
设置视图:
- void **setView(**View view) 设置视图对象
- void setViewName(String viewName) 设置视图名字
获取模型数据
protected Map<String, Object> getModelInternal() 获取模型数据
public ModelMap getModelMap()
public Map<String, Object> getModel()
1 |
|
3. SpringMVC中的重定向和转发
关于重定向和转发
一般情况下,控制器方法返回字符串类型的值会被当成逻辑视图名处理,即经过视图解析器处理。
如果返回的字符串中带 forward: 或 redirect: 前缀时,SpringMVC 会对他们进行特殊处理:将 forward: 和 redirect: 当成指示符,其后的字符串作为 URL 来处理
- redirect:success.jsp:会完成一个到 success.jsp 的重定向的操作
- forward:success.jsp:会完成一个到 success.jsp 的转发操作
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jilfoyle!