Springmvc如何实现向前台传递数据
1) 在springmvc方法的形参中定义Map,Model,ModelMap,并在方法中通过这三个对象进行值的传递;
①其中Map和ModelMap使用方式是一致的;
@RequestMapping("/detail") public String detail(Integer id, //ModelMap modelMap Map modelMap ){ HashMap<String,String> conditions=new HashMap<>(); conditions.put("sal","88888888"); conditions.put("age","35"); //todo 去数据库查询用户信息 System.out.println("查询id为"+id+"的用户记录"); User user=new User(id,"詹姆斯",18,"男","美国克利夫兰", new Role("小前锋",23), conditions, Arrays.asList("打篮球","打游戏")); //通过modelMap或map向前台传值==>request.setAttribute(key,value) modelMap.put("user",user); return "detail.jsp"; }
②Model只是通过addAttribute进行传值;
@RequestMapping("/detail") public String detail(Integer id, Model model){ HashMap<String,String> conditions=new HashMap<>(); conditions.put("sal","88888888"); conditions.put("age","35"); //todo 去数据库查询用户信息 System.out.println("查询id为"+id+"的用户记录"); User user=new User(id,"詹姆斯",18,"男","美国克利夫兰", new Role("小前锋",23), conditions, Arrays.asList("打篮球","打游戏")); //通过Model对象传递数据 model.addAttribute("user",user); return "detail.jsp"; }
2) 定义方法的返回值类型为ModelAndView,在方法中创建ModelAndView 并指定跳转的页面和传递的数据,最后返回ModelAndView对象;
3) 通过注解的方式 @ModelAttribute;
4) 在方法参数中定义Request或session对象,通过其对应的API;
下面2),3),4)的情况都在下面的代码内;
//演示通过ModelAndView向页面传值 //@ModelAttribute:注解将对象传递到request域中 1)加在方法参数上,将对象传递到request域中,或向request域中取值 // 2)加在方法上,将方法的返回值放入request域中 @RequestMapping("/detail2") public ModelAndView detail2(Integer id, @ModelAttribute("username") String username, HttpServletRequest request, HttpSession session, HttpServletResponse response ){ request.setAttribute("requestTest","请求域数据"); session.setAttribute("sessionTest","session域数据"); HashMap<String,String> conditions=new HashMap<>(); conditions.put("sal","88888888"); conditions.put("age","35"); //todo 去数据库查询用户信息 System.out.println("查询id为"+id+"的用户记录"); User user=new User(id,"詹姆斯",18,"男","美国克利夫兰", new Role("小前锋",23), conditions, Arrays.asList("打篮球","打游戏")); //通过ModelAndView设置跳转的页面和值 ModelAndView modelAndView=new ModelAndView(); //向页面传值 modelAndView.addObject("user",user); //指定跳转的页面 以/开头,则直接到资源根目录下找(即webapp下) // 不以/开头,跟在RequestMapping最后一个/后面 modelAndView.setViewName("detail.jsp"); return modelAndView; } //将方法返回值放入request域中 @ModelAttribute(name = "modelAttributeTest") public String test(){ return "我是@ModelAttribute的测试"; }
detail.jsp中代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>用户详情页面</title> </head> <body> <h1>用户详细信息</h1> <table> <tr> <td>用户名</td> <td>${user.name}</td> <td>年龄</td> <td>${user.age}</td> </tr> <tr> <td>性别</td> <td>${user.sex}</td> <td>地址</td> <td>${user.addr}</td> </tr> <tr> <td>角色ID</td> <td>${user.role.id}</td> <td>角色名</td> <td>${user.role.name}</td> </tr> <tr> <td>条件1</td> <td>${user.conditions.sal}</td> <td>条件2</td> <td>${user.conditions.age}</td> </tr> <tr> <td>爱好</td> <td>${user.hobbies}</td> </tr> </table> 获取@ModelAttribute设置的值:${username}<br/> 获取@ModelAttribute设置的值2:${modelAttributeTest}<br/> 获取request设置的值3:${requestTest}<br/> 获取session设置的值4:${sessionTest} </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
相关文章
- 这篇文章主要介绍了Spring AOP 对象内部方法间的嵌套调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-29
Spring Cloud 中@FeignClient注解中的contextId属性详解
这篇文章主要介绍了Spring Cloud 中@FeignClient注解中的contextId属性详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-25Springboot如何实现Web系统License授权认证
这篇文章主要介绍了Springboot如何实现Web系统License授权认证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-28如何在Spring WebFlux的任何地方获取Request对象
这篇文章主要介绍了如何在Spring WebFlux的任何地方获取Request对象,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下...2021-01-26- 这篇文章主要介绍了详解SpringCloudGateway内存泄漏问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-16
- @Autowired 注解的主要功能就是完成自动注入,使用也非常简单,但这篇文章主要给大家介绍了关于Spring为什么不推荐使用@Autowired注解的相关资料,需要的朋友可以参考下...2021-11-03
Springboot如何使用mybatis实现拦截SQL分页
这篇文章主要介绍了Springboot使用mybatis实现拦截SQL分页,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-19- 这篇文章主要介绍了SpringMVC文件上传原理及实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-15
C# MVC模式中应该怎样区分应用程序逻辑(Controller层)和业务逻辑(Model层)?
这篇文章主要介绍了C# MVC模式中应该怎样区分应用程序逻辑(Controller层)和业务逻辑(Model层)?,这也小编做.NET项目时经常思考和让人混乱的一个问题,这篇文章写的挺好,一下清晰了许多,需要的朋友可以参考下...2020-06-25Spring Data JPA 关键字Exists的用法说明
这篇文章主要介绍了Spring Data JPA 关键字Exists的用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-06-10- 第一种解决方案的原理是:将线程执行的方法和参数都封装到一个类里面。通过实例化该类,方法就可以调用属性来实现间接的类型安全地传递多个参数...2020-06-25
- 这篇文章主要介绍了C#实现窗体间传递数据实例,需要的朋友可以参考下...2020-06-25
DTO 实现 service 和 controller 之间值传递的操作
这篇文章主要介绍了DTO 实现 service 和 controller 之间值传递的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22tomcat启动完成执行 某个方法 定时任务(Spring)操作
这篇文章主要介绍了tomcat启动完成执行 某个方法 定时任务(Spring)操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-25使用Maven 搭建 Spring MVC 本地部署Tomcat的详细教程
这篇文章主要介绍了使用Maven 搭建 Spring MVC 本地部署Tomcat,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-08-16- 这篇文章主要介绍了Spring Cloud负载均衡及远程调用实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2021-09-18
- 这篇文章主要介绍了SpringMvc自动装箱及GET请求参数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-19
- 这篇文章主要介绍了Springboot使用thymeleaf动态模板实现刷新,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-31
- 这篇文章主要介绍了SpringMvc获取请求头请求体消息过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-17
Idea打包springboot项目没有.original文件解决方案
这篇文章主要介绍了Idea打包springboot项目没有.original文件解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-26