我检查的同样问题的解决方案都没有对我有用。我正在使用Intellij Idea Spring Initializer,它具有明确的项目结构:
的src:
---主要:
---------- java:
---------------- myproject:
------------------------------ config
------------------------------控制器
------------------------------ dao
------------------------------模特
------------------------------服务
------------------------------
HibernateApplication.java
---------资源:
---------------静态:
---------------模板
这里 HibernateApplication 是一个主要的跑步者类,一个由SpringBoot提供并标记为@SpringBootApplication的标准类; 资源位于主目录下,并且从其他示例中可以看出,它充当了web-inf文件夹。
在 config 中,有一个@Configuration类:
@Configuration
public class AppConfig {
@Bean
public InternalResourceViewResolver viewResolver(){
InternalResourceViewResolver resolver = new
InternalResourceViewResolver();
resolver.setPrefix("/resources/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
}
这是我的 @Controller 类:
@Controller
@RequestMapping("/")
public class ActorController {
@Autowired
private ActorService actorService;
@GetMapping
public String addActor(){
//actorService.addActor();
return "hello";
}
}
我没有在这里使用我的服务,所有我想做的只是让他得到并回复一个完全位于资源/静态的“ hello.jsp ”文件夹。它的内容很简单:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
Hello from Spring Boot!
</body>
</html>
以下是我的 application.properties :
spring.datasource.url = JDBC:MySQL的://本地主机:3306 / sakila的
spring.datasource.username =根
spring.datasource.password =根
spring.jpa.hibernate.ddl-AUTO =创造降
security.basic.enabled =假
我的依赖包括 tomcat-embded-jasper , jstl , javax.servlet 以及所有必要的spring boot内容。但是,当我运行localhost时:8080 /我收到一个带有意外404错误的whitelabel错误页面。如果我的路径配置为如.setPrefix(“/ resources /”)。setSuffix(“。jsp”),则说它无法解析“/resources/hello.jsp”。如果我将前缀设置为(“/ resources / static /”),则找不到“/resources/static/hello.jsp”。
什么事?当我在该路径上单击Ctrl时,甚至Intellij也可以轻松地解析路径,并将其重定向到“resources”文件夹。
P.S。好的,我发现了一个问题:默认情况下,Intellij创建了这个“myproject”文件夹,并且其中有一个运行者类,我错误地开始在这个文件夹中添加新包。现在我已经解决了这个问题,将所有软件包从这个文件夹中移到'main'文件夹中,只留下“myproject”文件夹里面的runner类。层次结构现在必须正常,但仍然没有在浏览器中返回视图。
答案 0 :(得分:0)
发现了一个问题
1.缺少一个Thymeleaf依赖
2.控制器,DAO和东西都应该作为SpringBootApplication主类的主文件夹中的子文件夹。我的问题是我的控制器甚至没有在组件扫描路径上
3.视图应放在'templates'文件夹中,而不是像我的情况(错误地)在'static'中。视图(在我的例子中)也必须是html,而不是jsp。
4.最后我在代码中删除了ViewResolver定义,因为我的html文件现在默认由SpringBoot检测到。
谢谢,现在可以关闭这个问题了。