spring mvc常用处理返回页面(显示层)方法

本文详细介绍了SpringMVC框架中Controller处理方法的四种主要返回值类型:ModelAndView、ModelMap/String、void及Map。每种类型的使用场景、设置模型数据的方法以及返回视图的策略都进行了阐述。

springMVC对于controller处理方法返回值的可选类型

一:ModelAndView

  
@RequestMapping("/show")
public ModelAndView show(HttpServletRequest request,
           HttpServletResponse response) throws Exception {

       ModelAndView model = new ModelAndView("/demo2/show");

       model.addObject("account", "account -1");
       return model;
   }


使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。 调用addObject()方法将值设置到一个名为ModelMap的类属性,ModelMap是LinkedHashMap的子类, 具体请看类。

:对于ModelAndView构造函数可以指定返回页面的名称,也可以通过setViewName方法来设置所需要跳转的页面


@RequestMapping("/show")
public ModelAndView show(HttpServletRequest request,
           HttpServletResponse response) throws Exception {

       ModelAndView model = new ModelAndView();

       model.addObject("account", "account -1");

       model.setViewName("/demo2/show");
       return model;
   }


二:ModelMap、String

对于String的返回类型,可配合Model,ModelMap来使用的;

   

@RequestMapping(value="/regester.do", method = RequestMethod.POST)
    public String regester(ModelMap model,@ModelAttribute("User")
               User user,@RequestParam(value="code", required=false) String code) throws Exception {
        
          model.addAttribute("userName", user.getUserName());
          model.addAttribute("pwd", user.getPwd());
          model.addAttribute("code", code);
          return "regester";
      }


注:返回字符串表示一个视图名称,这个时候如果需要在渲染视图的过程中需要模型的话,就可以给处理器添加一个模型参数,然后在方法体往模型添加值就可以了


@RequestMapping(method = RequestMethod.GET)

    public String index(Model model) {

        String retVal = "user/index";

        List<User> users = userService.getUsers();

        model.addAttribute("users", users);

        return retVal;

    }



三:void

当返回类型为Void的时候,则响应的视图页面为对应着的访问地址


@Controller
@RequestMapping(value="/type")
public class TypeController extends AbstractBaseController{

    @RequestMapping(method=RequestMethod.GET)

    public void index(){

        ModelAndView modelAndView = new ModelAndView();

        modelAndView.addObject("xxx", "xxx");

    }

}

返回的结果页面还是:/type

注:这个时候我们一般是将返回结果写在了HttpServletResponse 中了,如果没写的话,spring就会利用RequestToViewNameTranslator 来返回一个对应的视图名称。如果这个时候需要模型的话,处理方法和返回字符串的情况是相同的。



四:Map

    @RequestMapping(method=RequestMethod.GET)
    
    public Map<String, String> index(){

        Map<String, String> map = new HashMap<String, String>();

        map.put("1", "1");

        return map;

    }

注:响应的view应该也是该请求的view。等同于void返回。  map.put相当于request.setAttribute方法




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KunQian_smile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值