【发布时间】:2018-02-18 04:36:06
【问题描述】:
我正在尝试创建一个简单的 Web 应用程序,它将在 FE 中使用 Angular,在 BE 中使用 Spring。
如果我从我的 IDE (IntelliJ IDEA 2017.2) 运行它,一切正常,但如果我启动 jar 文件,它无法找到 jsp 页面并显示 Whitelabel 错误页面。
它的 gradle build 和 thease 是依赖项
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-rest')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
compile 'javax.servlet:jstl:1.2'
}
ChartConfiguration.java
@Configuration
@EnableWebMvc
public class ChartConfiguration extends WebMvcConfigurerAdapter{
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
registry.viewResolver(viewResolver);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
ChartInitializer.java
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import javax.servlet.Filter;
public class ChartInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { ChartConfiguration.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
protected Filter[] getServletFilters() {
Filter [] singleton = { new CORSFilter() };
return singleton;
}
}
IndexController.java
@Controller
@RequestMapping("/")
public class IndexController {
@RequestMapping(method = RequestMethod.GET)
public String getIndexPage() {
return "ChartManagement";
}
}
而我的jsp页面只包含一个
标签,仅此而已。
我做错了什么,我想不通?
【问题讨论】:
-
/WEB-INF!=/META-INF/resources/WEB-INF,移动你的WEB-INF文件夹直接植根于src/main/resources -
刚刚试过了。这样它也不会从 IDE 启动。
-
您遇到了包装问题。
-
JSP 在 Angular 应用中做什么?
-
我可以把它改成html文件,目前我只是想让它启动。但我不太明白你的第一条评论。
标签: java spring jsp spring-mvc executable-jar