springboot实现返回视图而不是string的方法
程序员文章站
2022-06-16 10:34:21
目录springboot返回视图而不是string还有一种就是通过modelandviewspringboot返回视图方式spring boot返回视图的方式补充一下springboot返回视图而不是...
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 @enableautoconfiguration public 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 @enableautoconfiguration public class hellocontroller { @requestmapping("/hello") @responsebody public 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 */ @configuration public class webmvcconfig implements webmvcconfigurer { @override public void addviewcontrollers(viewcontrollerregistry registry) { registry //接收的请求 .addviewcontroller("/tologin") //跳转的页面名 .setviewname("login"); } }
补充一下
快速上手
1.在pom.xml添加依赖
<!--web--> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <!--thymeleaf--> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-thymeleaf</artifactid> </dependency>
2.创建页面login.html
3.配置thymeleaf
在application.yml中添加上
spring: thymeleaf: #页面存放位置 prefix: classpath:/templates/ #是否缓存 这里是否 cache: false suffix: .html mode: legacyhtml5 template-resolver-order: 0
再进行视图配置就可以访问到了
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
下一篇: 关于Python中的闭包详解