我试图得到我创建的HTML页面。这是我的项目的结构:
这是“IndexController”类:
@RestController
@AllArgsConstructor
@RequestMapping(path = "/webpage")
public class IndexController {
@GetMapping(path = {"mainpage"})
@ResponseBody
public String index(){
return "Index";
}
@PostMapping("/check")
public String CheckDataset(@ModelAttribute CheckModel checkModel){
System.out.println(checkModel);
return null;
}
}
当我直接从intellij打开HTML网页时:
打开完美,但当我试图从Sping Boot 打开HTML时,只返回“Index”字符串。
你知道怎么解决这个问题吗?
2条答案
按热度按时间jw5wzhpr1#
请注意,如果你需要显示一个HTML页面,你的类IndexController不应该有
@RestController
。它应该只有@Controller
。简单来说
@RestController = @Controller + @ResponseBody
在您的例子中,您使用的
@RestController
注解使其中的所有方法默认为@ResponseBody
,并且您不必显式地提及@ResponseBody
annotation不显示视图,而是发送String响应。解决此问题的步骤:
1.在类级别将
@RestController
注解更改为@Controller
1.从计划显示HTML的方法中删除
@ResponseBody
所以你的代码是
只要确保您的POM.xml中有
spring-boot-starter-thymeleaf
依赖项即可谢谢。
f4t66c6m2#
要返回HTML页面(视图),您必须使用Spring MVC,即
@Controller
而不是@RestController
,并返回ModelAndView
,其中index
作为视图名称: