SpringBoot中访问controller中的方法和访问网页的跳转和重定向

学完一阵子的Springboot之后开始试着去做点东西出来了,之后,就是一阵的打击,最先面临的就是跳转的问题。不知道大家有没有碰到相同的问题,碰到controller跳转时,想要跳转到同类下的方法,却不知道如何下手。有时候想要实现跳转,却弹出 404。如果,你也遇到相同的情况可以看看这个文章。

正文开始!!!
遇到跳转问题时,一般都是以下几种情况:
1、 地址填写错误
2、 文件找不到
3、 跳转的不是想要的目录下文件

我根据我遇到的问题,总结了一下几种方法。
首先要提到的问题是**@RestController** 它的底层包含了@ResponseBody和@Controller 而@ResponseBody是以JSON的方式返回数据。

在这里插入图片描述
如果你使用了@ResponseBody 则 return 返回的字符串只能原样输出在网页上,如下:
在这里插入图片描述

在这里插入图片描述
所以要谨慎使用!!! 后面也会说使用了@RestController 如何实现跳转

1、return 跳转到界面 (默认访问:templates文件夹下)

@RequestMapping("/findAll")
    public String findAll(){
        return "list";
    }

跳转到 list.html 页面
SpringBoot和springMVC相同会通过视图解析器帮我们实现页面的跳转。

2、return 重定向(默认访问:static文件夹,)

	@RequestMapping("/findAll")
	public String findAll(){
		return "redirect:test.html";
	}

与原生Servlet相同

	@RequestMapping("/findAll")
	public void findAll(HttpServletRequest request,
		HttpServletResponse response) throws IOException{
		response.sendRedirect("test.html");
		return;
	}

3、return 重定向到方法

	@RequestMapping("/findAll")
    public String findAll(){
        return "redirect:/hello";
    }

@RequestMapping("/hello")
	public String testHello(){
		return "list";
	}

与原生Servlet相同

	@RequestMapping("/findAll")
    public void findAll(HttpServletRequest request,
		HttpServletResponse response) throws IOException{
        response.sendRedirect("/hello");
        return;
    }

@RequestMapping("/hello")
	public String testHello(){
		return "list";
	}

如果你使用了@RestController 则可以使用ModelAndView来返回数据!!

** 4、ModelAndView 跳转到网页(默认访问:templates文件下文件) **

	@RequestMapping("/findAll")
	public ModelAndView findAll() throws IOException {
        ModelAndView mav = new ModelAndView();
        // 加不加后缀名(.html)都可以
        mav.setViewName("list.html");
        return mav;
    }

** 5、 ModelAndView 跳转到方法**

	@RequestMapping("/findAll")
	public ModelAndView findAll() throws IOException {
        ModelAndView mav = new ModelAndView();
        mav.setViewName("redirect:/hello");
        return mav;
    }

	@RequestMapping("/hello")
	public String testHello(){
		return "list";
	}

文章到这里就结束了,学习就是这样,很多时候的错误都是出在一些细节上面的处理,希望各位小伙伴,远离bug,生活高歌。


  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如何在Spring Boot实现HTML页面跳转? 您可以使用@Controller注释将类标记为控制器,然后使用@RequestMapping注释将方法映射到特定的URL,从而实现HTML页面跳转。您可以返回“redirect: /targetURL”或“forward: /targetURL”字符串来让Spring Boot重定向或转发到目标URL。 ### 回答2: Spring Boot是一个Java框架,可以快速搭建Web应用程序。为了提供更好的用户体验,我们经常需要使用HTML页面跳转来展示不同的页面。 首先,在Spring Boot,我们可以使用Controller来处理HTML页面跳转Controller是一个Java类,在其指定URL路径和页面模板即可实现动态的HTML页面跳转。 假设我们有一个名为“home”的Controller,并且我们想要在用户访问“/home”时跳转到一个名为“index”的HTML页面。首先,在Spring Boot,我们需要使用注解来声明Controller类,如下所示: ``` @Controller public class HomeController { @GetMapping("/home") public String home() { return "index"; } } ``` 在上面的代码,我们使用@GetMapping注解来指定URL路径“/home”,并使用return语句返回页面模板“index”。这将使Spring Boot自动查找名为“index”的HTML文件并将其渲染到用户的浏览器。 如果我们想要在HTML页面之间传递数据,则可以使用Spring Boot的ModelAndView类。这个类可以包含一个Model,其包含所有需要传递的数据,以及一个View,其包含要显示的HTML页面。 例如,我们想要在名为“login”的HTML页面显示一个名为“message”的字符串。我们可以在HomeController添加以下代码: ``` @Controller public class HomeController { @GetMapping("/home") public ModelAndView home() { ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("message", "Hello, Spring Boot!"); modelAndView.setViewName("login"); return modelAndView; } } ``` 在上面的代码,我们在ModelAndView对象添加了一个名为“message”的String变量,并将其值设置为“Hello, Spring Boot!”。我们还使用setViewName()方法指定要显示的HTML页面模板。 综上所述,Spring Boot实现HTML页面跳转需要在Controller使用注解和ModelAndView类来指定URL路径、页面模板和需要传递的数据。通过这种方式,我们可以快速轻松地实现动态的HTML页面跳转

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值