Eu sou incapaz de prestar página html em springboot. Aqui está o código ...
@RestController
public class ProductController {
@Autowired
ProductService service;
@InitBinder
public void initBinder(WebDataBinder webDataBinder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
dateFormat.setLenient(false);
webDataBinder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
@RequestMapping(value = { "/", "/home" })
public ModelAndView home() {
System.out.println("sdasasas");
return new ModelAndView("home");
}
mas sempre que eu bati http: // localhost: 8080 / home mostra seguinte registros -8080-exec-4] oswsvContentNegotiatingViewResolver: Selected 'text / html' dadas [text / html, application / xhtml + xml, image / WebP, image / APNG, / assinado de permuta de aplicação; v = b3, aplicação / XML; q = 0,9, /; Q = 0,8] 2019/07/31 16: 05: 25,354 DEBUG 14850 --- [nio-8080-exec-4] oswservlet.view.InternalResourceView: View nome 'casa', o modelo {} 2019/07/31 16 : 05: 25,354 14,850 DEPURAR --- [nio-8080-exec-4] oswservlet.view.InternalResourceView: Encaminhamento para [/WEB-INF/html/home.html] 2019/07/31 16: 05: 25,354 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: expedição "forward" para obter "/WEB-INF/html/home.html", parameters = {} 2019/07/31 16:05: 25,356 DEBUG 14850 --- [nio-8080-exec-4] oswshandler.SimpleUrlHandlerMapping: mapeado para ResourceHttpRequestHandler [ "classpath: / META-INF / recursos /", "classpath: / recursos /", "classpath: / static /" "classpath: / public /", "/"] 2019/07/31 16: 05: 25,356 WARN 14850 --- [nio-8080-exec-4] oswsrResourceHttpRequestHandler:Caminho com "WEB-INF" ou "META-INF": [WEB-INF / html / home.html] 2019/07/31 16: 05: 25,356 14,850 DEPURAR --- [nio-8080-exec-4] oswsrResourceHttpRequestHandler : recurso não encontrado 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: Saindo de expedição "AVANÇO", o estado 404 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] ojsOpenEntityManagerInViewInterceptor: Fechando APP EntityManager em OpenEntityManagerInViewInterceptor 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb. servlet.DispatcherServlet: Completado 404 NOT_FOUND 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: "eRRO" expedição para obter "/ erro", parâmetros = {}[WEB-INF / html / home.html] 2019/07/31 16: 05: 25,356 14,850 DEPURAR --- [nio-8080-exec-4] oswsrResourceHttpRequestHandler: recurso não encontrado 2019/07/31 16: 05: 25,357 DEPURAR 14,850 --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: Saindo de expedição "AVANÇO", o estado 404 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec -4] ojsOpenEntityManagerInViewInterceptor: Fechando APP EntityManager em OpenEntityManagerInViewInterceptor 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: Completado 404 NOT_FOUND 2019/07/31 16: 05: 25,357 DEBUG 14850 --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: "eRROR" despacho para GET "/ erro", parameters = {}[WEB-INF / html / home.html] 2019/07/31 16: 05: 25,356 14,850 DEPURAR --- [nio-8080-exec-4] oswsrResourceHttpRequestHandler: recurso não encontrado 2019/07/31 16: 05: 25,357 DEPURAR 14,850 --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: Saindo de expedição "AVANÇO", o estado 404 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec -4] ojsOpenEntityManagerInViewInterceptor: Fechando APP EntityManager em OpenEntityManagerInViewInterceptor 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: Completado 404 NOT_FOUND 2019/07/31 16: 05: 25,357 DEBUG 14850 --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: "eRROR" despacho para GET "/ erro", parameters = {}Recurso não encontrado 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: Saindo de expedição "AVANÇO", o estado 404 2019/07/31 16:05 : 25,357 14,850 DEPURAR --- [nio-8080-exec-4] ojsOpenEntityManagerInViewInterceptor: Fechando APP EntityManager em OpenEntityManagerInViewInterceptor 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet .DispatcherServlet: Completado 404 NOT_FOUND 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: expedição "eRRO" para obter "/ erro", parâmetros = { }Recurso não encontrado 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: Saindo de expedição "AVANÇO", o estado 404 2019/07/31 16:05 : 25,357 14,850 DEPURAR --- [nio-8080-exec-4] ojsOpenEntityManagerInViewInterceptor: Fechando APP EntityManager em OpenEntityManagerInViewInterceptor 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet .DispatcherServlet: Completado 404 NOT_FOUND 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: expedição "eRRO" para obter "/ erro", parâmetros = { }Fechando APP EntityManager em OpenEntityManagerInViewInterceptor 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: Completado 404 NOT_FOUND 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: "eRROR" despacho para GET "/ erro", parameters = {}Fechando APP EntityManager em OpenEntityManagerInViewInterceptor 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: Completado 404 NOT_FOUND 2019/07/31 16: 05: 25,357 14,850 DEPURAR --- [nio-8080-exec-4] osweb.servlet.DispatcherServlet: "eRROR" despacho para GET "/ erro", parameters = {}
Evite @RestController
para aplicação baseada MVC que tem de voltar a vista. Ele é usado principalmente para APIs REST. Enquanto @Controller
pode retornar uma vista
Mais sobre@RestController
:
- Esta anotação é uma versão especializada do
@Controller
que acrescenta@Controller
e@ResponseBody
anotação automaticamente. por isso não tem que adicionar@ResponseBody
aos nossos métodos de mapeamento. Isso significa que@ResponseBody
é o padrão ativo. - Se você usar
@RestController
você não pode retornar uma visão (Ao usarViewresolver
na Primavera / Primavera-Boot) @RestController
também converte a resposta paraJSON/XML automatically
como@ResponseBody
faz com que os objetos retornados para algo que poderia ser no corpo,e.g. JSON or XML
@RestController
public class ProductController {
@Autowired
ProductService service;
@RequestMapping(value = { "/", "/home" })
public @ResponseBody ModelAndView home() {
System.out.println("sdasasas");
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("home");
return modelAndView;
}
}
Não há necessidade de especificar spring.mvc.view.prefix=/WEB-INF/html/ spring.mvc.view.suffix=.html
Além disso, certifique-se que você não tem qualquer classe adicional com @EnableWebMvc
anotação. Isso pode atrapalhar a configuração automática de primavera-boot.