Spring MVC中页面跳转(forward or redirect)

本文详细介绍了SpringMVC框架中处理请求时视图的返回机制,包括使用String和ModelAndView作为控制器方法的返回类型,并解释了forward与redirect的区别及应用场景。

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

一 处理方法返回值设置为String类,一切麻烦都没有了:

    @RequestMapping("/dologin")
    public String dologin(HttpServletRequest request, User user) {

      return "panel/bingo";
}

原因很简单,你返回一个String,一个字符串,这个字符串代表View的名字。你的返回值由谁来处理?答:由ViewResolver。
你告诉ViewResolver一个名字,这个名字是一个字符串。ViewResolver会依据这个名字,去WEB-INF中找到对应的jsp页面。靠,这么聪明?傻逼,你之前配置过的啊:
screenshot

二 处理方法返回值设置为ModelAndView类:

    @RequestMapping("/dologin")
    public ModelAndView dologin(HttpServletRequest request, User user) {    
        User us1 = uss.getUserByName(user.getSrName());
        ModelAndView mav = new ModelAndView();
        mav.setViewName("login/login");
        if (us1 == null) {
            mav.addObject("errorMsg", "用户名不存在");
        } else if (!us1.getSrPwd().equals(user.getSrPwd())) {
            mav.addObject("errorMsg", "用户密码不正确");
        } else {
            mav.setViewName("public");
        } 
        return mav;
    }

上面使用ModelAndView对象作为返回值,最好使用setViewName()方法设置一下View的名字。这个viewname的解析过程和1中一样。

三 forward和redirect关键词
forward和redirect只能定位到WEB-INF目录之外的jsp文件
ModelAndView对象被解析,可以定位到WEB-INF目录中的jsp文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值