本文将阐述如何将后台获取的数据传递到前端。
1、环境约束
- win10 64位操作系统
- idea2018.1.5
- jdk-8u162-windows-x64
- spring4.2.4
前提约束
- 完成基于注解的springmvc的demo https://www.jianshu.com/p/d1a84f07c98f
操作步骤
- 确保spring-mvc.xml中包含以下内容:
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 处理静态资源:html js css font img-->
<mvc:default-servlet-handler></mvc:default-servlet-handler>
<!-- 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/page/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
- ModelAndView
@RequestMapping(value = "/test1")
public ModelAndView test1()
{
ModelAndView modelAndView = new ModelAndView("success");
modelAndView.addObject("name","ali");
Map map = new HashMap();
map.put("age",12);
modelAndView.addAllObjects(map);
return modelAndView;
}
在WEB-INF/page/下加入一个success.jsp,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${name}
<%=request.getAttribute("age")%>
</body>
</html>
在浏览器中访问 http://localhost:8080/test1,会看到后台java代码中设置的数据显示到页面。
- Map
@RequestMapping(value = "/test2")
public String test2(Map map)
{
map.put("name","ali");
return "success1";
}
在WEB-INF/page/下加入一个success1.jsp,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${name}
</body>
</html>
在浏览器中访问 http://localhost:8080/test2,会看到后台java代码中设置的数据显示到页面。
- MapModel & Model
@RequestMapping(value = "/test3")
public String test2(Model model, ModelMap modelMap)
{
model.addAttribute("name","ali");
modelMap.addAttribute("age",12);
return "success2";
}
在WEB-INF/page/下加入一个success2.jsp,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${name}
${age}
</body>
</html>
在浏览器中访问 http://localhost:8080/test3,会看到后台java代码中设置的数据显示到页面。
- ModelAttribute
@ModelAttribute
public void initMap(Map map)
{
map.put("name","ali");
}
@RequestMapping(value = "/test4")
public String test2(Map map)
{
map.put("age",12);
return "success3";
}
在WEB-INF/page/下加入一个success3.jsp,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${name}
${age}
</body>
</html>
在浏览器中访问 http://localhost:8080/test3,会看到后台java代码中设置的数据显示到页面。
- SessionAttributes
@SessionAttributes("USER")
public class SessionAttributesController{
@RequestMapping(value = "/test4")
public String test4(Map map)
{
map.put("USER","user");
map.put("age",12);
return "success4";
}
}
在WEB-INF/page/下加入一个success4.jsp,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
{sessionScope.USER}
${age}
</body>
</html>
在浏览器中访问 http://localhost:8080/test4,会看到后台java代码中设置的数据显示到页面。
- ResponseBody
这个注解意味着任何响应数据都会越过视图解析器,直接写回到页面。 - HttpServletRequest & HttpServletResponse
这两个就是servlet当中返回数据到页面的方式,下一个小节我们将详述。
以上就是springmvc当中数据响应到前端页面的几种常用方式。