java将数据传入前台_Springmvc如何实现向前台传递数据

1) 在springmvc方法的形参中定义Map,Model,ModelMap,并在方法中通过这三个对象进行值的传递;

①其中Map和ModelMap使用方式是一致的;

@RequestMapping("/detail")

public String detail(Integer id,

//ModelMap modelMap

Map modelMap

){

HashMap 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 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 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中代码如下:

用户详情页面

用户详细信息

用户名${user.name}年龄${user.age}
性别${user.sex}地址${user.addr}
角色ID${user.role.id}角色名${user.role.name}
条件1${user.conditions.sal}条件2${user.conditions.age}
爱好${user.hobbies}

获取@ModelAttribute设置的值:${username}

获取@ModelAttribute设置的值2:${modelAttributeTest}

获取request设置的值3:${requestTest}

获取session设置的值4:${sessionTest}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值