spring数据回写
温馨提示:
本文最后更新于 2022年06月18日,已超过 8 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
springMVC数据回写的几种方式
springMVC的数据回写方式
页面跳转
- 直接return字符串,方法接收字符串
- 使用ModelAndView对象进行返回
直接回写数据(将数据写到页面)
- 直接返回字符串
- 返回集合或者数组
使用返回和视图解析器直接进行页面的跳转
- 如果是要进行转发的话,在字符串前面加上
forword
- 如果是进行重定向的话就在字符串前面加上
redirect
使用ModelAndView方式进行页面的跳转
- 获取ModelAndView对象,调用set方法,此时可以设置资源页面,同时也可以设置值,将值存储在域对象中,直接显示在页面上
@Controller
public class UserController {
@RequestMapping("/quick")
public ModelAndView save() {
ModelAndView modelAndView = new ModelAndView();
//设置转发的页面名字
modelAndView.setViewName("success.jsp");
//设置转发的资源,将资源存储在域对象中
//可以存储map也可以存储其他数据类型
modelAndView.addObject("name","jack");
System.out.println("Controller save runing....");
return modelAndView;
}
}
当然了创建ModelAndView对象也可以让spring帮我们完成,可以直接将该方法作为参数传入形参,spring就会帮我们创建对应的对象,我们直接进行使用就可以了
通过HttpServlet在域对象中存入数据
@RequestMapping("/quick2")
public void save2(HttpServletRequest request) {
request.setAttribute("name","jack");
//可以使用servlet中的set方法将数据存在域对象中,将方法传入形参中spring将为我们创建对应的对象
System.out.println("Controller save runing....");
}
}
回写数据
Web基础阶段,客户端访问服务器端,如果想直接回写字符串作为响应体返回的话,只需要使用response.getWriter().print(“hello world”)
即可,那么在Controller中想直接回写字符串该怎样呢?
- 同样可以使用上述的方法进行回写,但是对象依然是需要spring帮我们进行创建,创建方法和上面的一样
@RequestMapping("/quick3")
public void save3(HttpServletResponse response) throws IOException {
response.getWriter().println("jack");
//可以使用servlet中的set方法将数据存在域对象中,将方法传入形参中spring将为我们创建对应的对象
System.out.println("Controller save runing....");
}
}
- 将需要回写的字符串直接返回,但此时需要通过@ResponseBody注解告知SpringMVC框架,方法返回的字符串不是跳转是直接在http响应体中返回。
回写json格式的数据
- 直接手动拼接
- 通过json格式转换工具Jackson实现,使用ObjectMapping提供的writeValueAsString(),就能实现对象转Jason
- 通过SpringMVC帮助我们对对象或集合进行json字符串的转换并回写,为处理器适配器配置消息转换参数,指定使用jackson进行对象或集合的转换,因此需要在spring-mvc.xml中进行如下配置:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
</list>
</property>
</bean>
- 在方法上添加@ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多,因此,我们可以使用mvc的注解驱动代替上述配置
<!--mvc的注解驱动-->
<mvc:annotation-driven/>
在 SpringMVC 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 SpringMVC 的三大组件。
使用
<mvc:annotation-driven>
自动加载RequestMappingHandlerMapping
(处理映射器)和
RequestMappingHandlerAdapter
( 处 理 适 配 器 ),可用在Spring-xml.xml配置文件中使用
<mvc:annotation-driven>
替代注解处理器和适配器的配置。同时使用
<mvc:annotation-driven>
默认底层就会集成jackson进行对象或集合的json格式字符串的转换。
正文到此结束
- 本文标签: Java Spring
- 本文链接: https://www.rlfit.cn/article/33
- 版权声明: 本文由若离风原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权