[英]unable to resolve view name in spring boot mvc
我正在使用spring boot開發spring MVC應用程序。
我的pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- <dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency> -->
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
和我的控制器類:
@EnableWebMvc
@Controller
public class RootController {
@RequestMapping("/")
public String home()
{
return "index";
}
@RequestMapping("/next")
public String next()
{
return "next";
}
}
應用類
@SpringBootApplication
@ComponentScan(basePackages= {"com.approot.controller"})
@EnableWebMvc
public class LimitBoApplication {
public static void main(String[] args) {
SpringApplication.run(LimitBoApplication.class, args);
}
}
我的春季application.properties
server.port =8090
spring.mvc.view.suffix=.jsp
server.servlet.context-path=/AppBO
當我運行此應用程序時,出現以下錯誤。
Could not resolve view with name 'index' in servlet with name
'dispatcherServlet'
javax.servlet.ServletException: Could not resolve view with name 'index'
in servlet with name 'dispatcherServlet'
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1350)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1116)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
我已經將我的jsp
文件放在LimitBO\\src\\main\\resources\\templates
,spring仍然找不到jsp文件。
我在這里做錯了什么? 我試圖將這些jsp文件添加到recources文件夾中,但仍然無法正常工作。
將您.jsp
文件src/main/webapp/WEB-INF/jsp/
並添加spring.mvc.view.prefix: /WEB-INF/jsp/
到application.properties
,你不需要@EnableWebMvc
在RootController
。
希望這可以幫助。
創建Java配置並嘗試以下操作:
@Configuration
@EnableWebMvc
public class WebConfigMvc extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver () {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/jsp"); //this is location you put jsp
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
通過JSP渲染tomcat時,您需要添加dependecy。
<!-- Tomcat for JSP rendering -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
如果配置不起作用。 嘗試以下:
spring.mvc.view.prefix = /WEB-INF/jsp/
spring.mvc.view.suffix = .jsp
spring.mvc.static-path-pattern=/resources/**
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.