Spring初始化程序中的Web Starter项目问题。 Springboot 2.2.0
我刚刚从Spring初始化程序网站创建了一个spring boot 2.2.0
项目,该项目具有Web Starter依赖性。如果我使用@RestController
批注并从邮递员发送请求,则该应用程序运行良好,但是当我使用@Controller
批注并尝试加载/ resources / templates目录中的hello.html页面时,它将抛出空或白标签错误。奇怪的是,包装结构完美,但无法正常工作。
到目前为止,对于此问题,我找不到任何答案。
答案 0 :(得分:1)
可能的问题:
使用@ResponseBody
时添加@ResponseBody
使用@Controller
时需要@RestController
。 @Controller
是@ResponseBody
的特殊版本,其中@Controller
public class UserController {
@GetMapping(value= "/hello")
public @ResponseBody String sayHello()
{
retrun "Hello";
}
}
默认处于活动状态
@Controller vs @RestController
与 @Controller
@RestController
public class UserController {
@GetMapping(value= "/hello")
public String sayHello()
{
retrun "Hello";
}
}
与 @RestContoller
import FullCalendar from "@fullcalendar/react";
import timeGrid from "@fullcalendar/resource-timegrid";
import resourceDayGridPlugin from '@fullcalendar/resource-daygrid';
class FC extends React.Component {
calendarComponentRef = React.createRef();
constructor(props) {
super(props);
this.state = {
events:[{ "id": 1, "title": "event 1", "description":"some description"},......]
}
}
eventRender(info){
var tooltip = new Tooltip(info.el, {
title: info.event.extendedProps.description,
placement: 'top',
trigger: 'hover',
container: 'body'
});
}
render() {
return <FullCalendar
events={this.state.getEvents}
defaultView="resourceTimeGridDay"
plugins={[timeGrid, interactionPlugin, resourceDayGridPlugin]}
eventRender={this.eventRender}
schedulerLicenseKey="GPL-My-Project-Is-Open-Source"
/>
}
}
答案 1 :(得分:0)
@RestController:如果它是@RestController,则仅返回我们在return语句中给出的值。 例如:
HomeController.java
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HomeController {
@RequestMapping(value="/")
public String index() {
return "home";
}
}
输出为:home
它只返回return语句
@Controller:@Controller批注返回视图页面(resource / template / home.html)。例如:
HomeController.java
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
@Controller
public class HomeController {
@RequestMapping(value="/")
public String index() {
return "home";
}
}
home.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<img alt="Image" src="/images/barbie.jpg">
</body>
</html>
输出:显示home.html页面
答案 2 :(得分:0)
是否将百里香依赖性添加到您的项目中?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
答案 3 :(得分:0)
只需更新Maven依赖项即可解决此问题。谢谢大家的回应。