返回
数据响应——读取对象与属性数据
后端
2023-11-15 00:31:41
对象与属性数据响应机制
SpringMVC数据响应机制支持从控制器方法中读取对象和属性数据,并将其映射到视图。具体流程如下:
- 控制器方法执行后,将数据存储在ModelAndView或Model对象中。
- ViewResolver解析视图,将逻辑视图名转换为物理视图路径。
- 根据视图类型,将数据格式转换为JSON、XML或POJO。
- 通过HTTP协议将数据响应给客户端。
使用ModelAndView或Model对象存储数据
在控制器方法中,可以使用ModelAndView或Model对象存储数据。ModelAndView对象包含视图和模型数据,而Model对象仅包含模型数据。
示例:
@Controller
public class DataResponseController {
@RequestMapping("/data-response")
public ModelAndView dataResponse() {
// 创建ModelAndView对象
ModelAndView modelAndView = new ModelAndView();
// 设置视图
modelAndView.setViewName("data-response-view");
// 创建Model对象
Model model = modelAndView.getModel();
// 向Model对象中添加数据
model.addAttribute("name", "John");
model.addAttribute("age", 25);
// 返回ModelAndView对象
return modelAndView;
}
}
使用ViewResolver解析视图
ViewResolver负责解析视图,将逻辑视图名转换为物理视图路径。
SpringMVC提供了多种ViewResolver实现,包括:
- InternalResourceViewResolver:用于解析JSP视图。
- FreeMarkerViewResolver:用于解析FreeMarker视图。
- ThymeleafViewResolver:用于解析Thymeleaf视图。
示例:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
将数据格式转换为JSON、XML或POJO
根据视图类型,SpringMVC会将数据格式转换为JSON、XML或POJO。
示例:
<bean id="jsonViewResolver" class="org.springframework.web.servlet.view.json.MappingJackson2JsonViewResolver">
<property name="prefixJson" value="json/" />
<property name="suffixJson" value=".json" />
</bean>
通过HTTP协议将数据响应给客户端
SpringMVC将数据格式转换为JSON、XML或POJO后,通过HTTP协议将数据响应给客户端。
示例:
{
"name": "John",
"age": 25
}
总结
SpringMVC数据响应机制支持从控制器方法读取对象和属性数据,并将其映射到视图。通过ModelAndView或Model对象存储数据,利用ViewResolver解析视图,再将数据格式转换为JSON、XML或POJO,最终通过HTTP协议将数据响应给客户端。