@Controller
public class loginController {
@RequestMapping("/login")
public String login(){
return "login";
}
}
login.jsp 文件位于** src / main / webapp / WEB-INF / jsp / login.jsp **
我在应用程序属性文件中这样设置前缀和后缀。
spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp
logging.level.org.springframework.web=DEBUG
与我设置类似的依赖项一样。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
我的项目结构是这样的。
如果我运行程序并按localhost:8080 / login,则会出现以下白色标签错误。谁能建议我为什么会这样和解决方案
Whitelabel错误页面
此应用程序没有针对/ error的显式映射,因此您将其视为备用。
答案 0 :(得分:0)
您需要添加以下Maven依赖项:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
Jsp需要依赖javax.servelt来处理请求。
更新:
默认情况下,不处理您的jsp目录位置。请将其移至以下位置:
src / main / resources / META-INF / resources / WEB-INF / jsp
更新: 确保您的SpringBootApplication正在扫描控制器。您必须在日志中看到以下内容:
s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/login],methods=[GET]}"
请在您的SpringBootApplication上添加注释@ComponentScan("com.example.controller")
,以扫描您的控制器或将SpringBootApplication移动到通用软件包com.example
答案 1 :(得分:0)
将您的main
类放在com.example
下!
和
尝试更换
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
到
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
这也是必需的
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
您的项目结构应类似于https://i.stack.imgur.com/UaK8l.png