springboot实现返回视图而不是string的方法

目录

  • springboot返回视图而不是string
    • 还有一种就是通过ModelAndView
  • springboot返回视图方式
    • Spring boot返回视图的方式
    • 补充一下

springboot返回视图而不是string
package com.example.demo.controller; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller@EnableAutoConfigurationpublic class HelloController {@RequestMapping("/hello")public String hello() {System.out.println("进入controller"); return "hello"; }}

注意释@Controller而不是@RestContreller
@RestController返回的是json(JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。)如果用了@RestController则不要用@Responsebody

还有一种就是通过ModelAndView
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; @Controller@EnableAutoConfigurationpublic class HelloController {@RequestMapping("/hello")@ResponseBodypublic ModelAndView hello(){System.out.println("hello!"); ModelAndView mode = new ModelAndView(); mode.setViewName("hello"); return mode; }}

一般用于携带参数且返回视图,如果要带参数的话,加上mode.addObject()函数
另外需要注意一点,html文件中所有标签都必须要有结束符,idea有时候生成meta标签时会没有结束符,所以要加上
最终输入http://localhost:8080/hello就可以了

springboot返回视图方式
Spring boot返回视图的方式
1.使用ModelAndView
在controller中
@RequestMapping("toTest")public ModelAndView toTest(){ModelAndView mv = new ModelAndView(); //视图名mv.setViewName("login"); //想传的数据mv.addObject("o1","数据1"); return mv; }

2.使用webMVC配置
创建配置类
package com.ch.exercise.config.webMvc; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * MVC配置 * @author CH * @date 2021-08-19 11:45 */@Configurationpublic class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry//接收的请求.addViewController("/toLogin")//跳转的页面名.setViewName("login"); }}


补充一下
快速上手
1.在pom.xml添加依赖
org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-thymeleaf

2.创建页面login.html
springboot实现返回视图而不是string的方法
文章图片

3.配置thymeleaf
在application.yml中添加上
spring:thymeleaf:#页面存放位置prefix: classpath:/templates/#是否缓存 这里是否cache: falsesuffix: .htmlmode: LEGACYHTML5template-resolver-order: 0

再进行视图配置就可以访问到了
【springboot实现返回视图而不是string的方法】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    推荐阅读