返回

数据响应——读取对象与属性数据

后端

对象与属性数据响应机制

SpringMVC数据响应机制支持从控制器方法中读取对象和属性数据,并将其映射到视图。具体流程如下:

  1. 控制器方法执行后,将数据存储在ModelAndView或Model对象中。
  2. ViewResolver解析视图,将逻辑视图名转换为物理视图路径。
  3. 根据视图类型,将数据格式转换为JSON、XML或POJO。
  4. 通过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协议将数据响应给客户端。