出于某些特殊原因,我必须在两个不同的位置支持JSP文件。
当前,我编写了以下配置:
@Configuration
public class JSPConfig {
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/webpage/");
viewResolver.setSuffix(".jsp");
viewResolver.setOrder(1);
return viewResolver;
}
@Bean
public InternalResourceViewResolver viewResolver2() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/webpage/");
viewResolver.setSuffix(".jsp");
viewResolver.setOrder(2);
return viewResolver;
}
}
但是它不起作用。第一个InternalResourceViewResolver
用于我项目中的JSP文件,它可以正常工作。第二个是用于第一个第三方jar中的JSP文件,其路径为{jarfilename}\org\apache\jsp\webpage\modules\gen
。最终war文件中的第三方jar文件的路径为{warfilename}\WEB-INF\lib\
。我在一个控制器中将JSP文件用作modules/gen/{some_jsp_name_without_suffix}
。不幸的是,无法找到第3个JSP文件。
通过逐步调试,我注意到原因是它从未尝试在当前配置下定位和匹配第二个InternalResourceViewResolver
。它尝试匹配第一个视图解析器,但失败。它尝试匹配某些.ftl
视图解析器,但失败。
有人可以帮我吗? Spring Boot是否支持在两个不同的路径下定位JSP文件?
非常感谢。