spring bootthymeleaf页面传递参数的方式(一)

本文详细介绍了在SpringMVC框架下,数据如何从控制器传递到视图的各种方法,包括使用HttpServletRequest、Session、ModelMap、Model对象、@ModelAttribute注解、自定义Map以及通过转发和重定向定位视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、使用HttpServletRequest 和 Session  然后setAttribute(),就和Servlet中一样

Model数据会利用HttpServletRequest的Attribute传值到success.jsp中

@RequestMapping("/login.do")  
    public ModelAndView  login(String name,String pass){  
        User user = userService.login(name,pwd);  
        Map<String,Object> data = new HashMap<String,Object>();  
        data.put("user",user);  
        return new ModelAndView("success",data);  
    }

2、使用ModelMap或者model对象

ModelMap数据会利用HttpServletRequest的Attribute传值到success.jsp中

@RequestMapping("/login.do")  
    public String login(String name,String pass ,ModelMap model){  
        User user  = userService.login(name,pwd);  
        model.addAttribute("user",user);  
        model.put("name",name);  
        return "success";  
    }

3、利用model或modelMap对象向页面传参

@RequestMapping("/index/{p}.html")

public String index(Model model){
//因为用了spring boot缓存,sb是用返回值做缓存,所以service再次返回了pageQuery以缓存查询结果
List<Topic> findTopicsByPage = topicService.findTopicsByPage(1,Const.TOPIC_PAGE_SIZE);
model.addAttribute("topicPage", findTopicsByPage);
model.addAttribute("pagename", "信息");
return "index";

}

4、使用@ModelAttribute注解

 

在Controller方法的参数部分或Bean属性方法上使用

@ModelAttribute数据会利用HttpServletRequest的Attribute传值到success.jsp中

@RequestMapping("/login.do")  
    public String login(@ModelAttribute("user") User user){  
        //TODO  
       return "success";  
    }  
      
    @ModelAttribute("name")  
    public String getName(){  
        return name;  
    }

 

5、Session存储:可以利用HttpServletReequest的getSession()方法

@RequestMapping("/login.do")  
    public String login(String name,String pwd  
                                ModelMap model,HttpServletRequest request){  
         User user = serService.login(name,pwd);  
         HttpSession session = request.getSession();  
         session.setAttribute("user",user);  
         model.addAttribute("user",user);  
         return "success";  
    }

6、自定义Map

@ResponseBody
    @RequestMapping(value = "/updatestatus", method = RequestMethod.POST)
    public Map<String, Object> updateStatus(HttpServletRequest request) {
        Map<String, Object> result = new HashMap<String, Object>();
        String id = request.getParameter("id");
        SystemAdministrator sysadmin=systemAdminBiz.get(Integer.valueOf(id));
        sysadmin.setStatus(1);
        boolean    flag = systemAdminBiz.update(sysadmin);
        result.put("status", flag);
        return result;
    }

@RequestMapping(value = "/list", method = {RequestMethod.POST,RequestMethod.GET})
    public String queryAdministrator(HttpServletRequest request,ModelMap model) {
        Integer roleId = request.getParameter("roleListById") == null ? 0 : Integer.parseInt(request.getParameter("roleListById"));
        Map<String, Object> properties = new HashMap<String, Object>();
        if(roleId.intValue() > 0) {
            properties.put("role:=", roleId);
            model.put("roleId", roleId);
        }
        List<SystemAdministrator> administrator = systemAdminBiz.find(properties);
        List<SystemRole> systemRole = systemRoleBiz.getAll();
        model.put("administratorList", administrator);
        model.put("roleList", systemRole);
        return "sys_admin_list";
    }

7、Spring MVC 默认采用的是转发来定位视图,如果要使用重定向,可以如下操作

 

1,使用RedirectView

2,使用redirect:前缀

public ModelAndView login(){  
       RedirectView view = new RedirectView("regirst.do");  
       return new ModelAndView(view);  
    }  

或者用如下方法,工作中常用的方法: 

 public String login(){  
    //TODO  
    return "redirect:regirst.do";  
} 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值