我已经配置了一个Spring Boot应用程序,但是在启动该应用程序时,出现以下映射错误
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Dec 24 12:46:27 IST 2018
There was an unexpected error (type=Not Found, status=404).
No message available
。我通过下面的链接并更新了控制器,使其成为包含主类的根软件包的一部分。 This application has no explicit mapping for /error
我已经为我的应用程序使用了下面提到的配置/代码:
build.gradle
buildscript {
ext {
springBootVersion = '2.1.1.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.ticket'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation('javax.servlet:jstl')
implementation('org.springframework.boot:spring-boot-starter-web')
runtimeOnly('com.h2database:h2')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
TicketController.java
package com.ticket.controller;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@RestController
public class TicketController {
static Logger log = LogManager.getLogger();
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView homeScreen(ModelMap model) {
return new ModelAndView("view");
}
}
application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
Jsp路径
src/main/webapp/WEB-INF/jsp/view.jsp
答案 0 :(得分:1)
答案很简单,如果您使用百里香叶,请将以下行添加到pom.xml中:
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-thymeleaf </artifactId>
</dependency>
仅此而已,您必须将视图放入src / main / resources/templates
如果将jsp文件用于视图,则上述操作不起作用,必须将以下行添加到application.properties文件中:
spring.mvc.view.prefix = / WEB-INF / views /
spring.mvc.view.suffix = .jsp
前面的行表示驱动程序将在其中查找视图的文件夹,并且它们也必须与该文件夹结构一起存在。
并在您的pom.xml中添加以下行:
**
<dependency>
<groupId> org.apache.tomcat.embed </groupId>
<artifactId> tomcat-embed-jasper </artifactId>
<scope> provided </scope>
</dependency>
**
仅此而已,spring boot指示它无法找到请求的资源,但是上面已经描述的资源必须解决。
答案 1 :(得分:0)
默认情况下,Spring Boot不提供解析视图层Jsp的功能。 在下面的属性中添加
build.gradle
解决了问题
implementation('org.apache.tomcat.embed:tomcat-embed-jasper')