我在Spring-boot项目中创建了一个模块,我想将控制器重定向到该模块中的视图。我找不到解决方案,我一直在尝试其他选择。现在,我在WebMvcConfig
中添加了模板解析器,并且一个到根模板的解析器正在工作,但是我无法使另一个解析器正常工作。有什么想法吗?
这里是WebMvcConfig
:
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Bean
public ClassLoaderTemplateResolver templateModuleResolver() {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("espmonitor/src/main/resources/templates/");
templateResolver.setCacheable(false);
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
return templateResolver;
}
@Bean
public ClassLoaderTemplateResolver templateRootResolver() {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("templates/");
templateResolver.setCacheable(false);
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(templateModuleResolver());
templateEngine.addTemplateResolver(templateRootResolver());
return templateEngine;
}
@Bean
public ViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setCharacterEncoding("UTF-8");
return viewResolver;
}
视图控制器为:
@RequestMapping("/index_esp_monitor")
public String espMonitor(Model model){
return "index_esp_monitor";
}
我的项目结构:
答案 0 :(得分:0)
我设法使其正常运行,在这里展示解决方案,以防万一有人试图做类似的事情。
我试图在一个项目中拥有多个应用程序,并试图将每个应用程序置于不同的模块中。
首先,我在项目中创建了模块,并添加了一个附加模块作为选择器。然后,从项目中删除src
文件夹,并将模块添加到项目pom
<modules>
<module>espmonitor</module>
<module>seed</module>
<module>selector</module>
</modules>
每个模块的pom
包含:
<parent>
<artifactId>SeedCert</artifactId>
<groupId>com.niab</groupId>
<version>0.0.1</version>
</parent>
项目结构如下,模块selector
将包含其他模块的索引。
Application.java
配置为扫描其他模块的配置。
@ComponentScan({
"com.niab.config",
"com.niab.selector.controller"
})
每个模块都有一个用于特定扫描的com.niab.config程序包
我不确定这是否是最优雅的方法,但这是一个非常简单的解决方案,并且可以满足我的需求。