我正在学习javaee相关技术(我是相对新手),并尝试使用Spring和Thymeleaf作为前端编写简单的Web应用程序,并且我在模块化方面遇到了一些问题。
出于安全目的,我发现它用于将. html文件打包到WEB-INF目录中,但是,据我猜测,这意味着我必须将我所有的视图放在那里,在这个项目中有控制器。我想通过拥有许多项目来避免这种情况,例如:
它们中的每一个都有自己的模块特定控制器和视图(htmls),web-app将它们全部组合成一个大型项目。
在Thymelaf中,我发现了类似ClassLoaderTemplateResolver的东西,并得到了(也许是愚蠢的想法)如何将大项目分成许多项目-将htmls放入classpath资源目录中。通过这个,我可以从任何模块项目中要求任何html视图。这是否违反了一些安全原因?
我想问是否有人有类似的问题,并找到适当的解决方案如何优雅地将html web-app项目划分为许多较小的“上下文特定”项目?
这是我当前的项目结构。蓝色箭头表示哪个视图连接到哪个控制器:http://prntscr.com/4tqt9m
这是我在这里问的第一个问题,所以我希望你能理解我。
提前谢谢你。
您可能能够在运行时使用类路径查找合并多个Spring和Thymeleaf模块。只需确保您提供不同的限定名称/文件夹结构(例如:不同包上名为view/index. html的两个文件可能会导致令人困惑的不一致)
使用Spring,如果您正确配置类路径扫描,它应该考虑类路径上的jar包。
使用Thymeleaf,尝试设置一个带有前缀的TemplateResolver,例如classpath:/template/
,然后在不同的模块上设置一个文件夹结构,例如src/main/资源/template/package-a/foo. html
,src/main/资源/模板/package-b/foo.html
。我还没有尝试过这个,也不能100%确定类加载器可以很好地合并这些。