springboot配合thymeleaf,调用接口不跳转页面只显示文本

导读:本篇文章讲解 springboot配合thymeleaf,调用接口不跳转页面只显示文本,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题一:thymeleaf不跳转页面,只显示文本index

代码如下:

@RequestMapping("/excel")
@RestController
public class OperateExcelController {

    @GetMapping(value = "")
    public String index() {
        //使用@RestController不能直接返回return "index",否则不会跳转页面,只会再页面显示index文本而已
        return "index";
    }

这个代码的初衷是返回index.html页面,但是执行的结果是在页面中输出index。

原因分析:

@RestController注解相当于@ResponseBody和@Controller合在一起的作用。在使用@RestController注解Controller时,Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

包括在Mapping注解使用的同时使用@ResponseBody时也会出现同样的问题。

解决方案

解决办法①:去除@ResponseBody或将含有Rest的注解换成对应的原始注解@Controller;

@RequestMapping("/excel")
@Controller
public class OperateExcelController {
    @GetMapping(value = "")
    public String index() {
        return "index";
    }

解决办法②:不通过String返回,通过ModelAndView对象返回,上述例子可将return语句换成下面的句子,在使用ModelAndView对象返回的时候,不需要考虑有没有@ResponseBody类似的注解。

@RequestMapping("/excel")
@RestController
public class OperateExcelController {
    @GetMapping(value = "")
    public ModelAndView index() {
        return new ModelAndView("index");
    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106229.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!