提问者:小点点

以html为资源的Spring和thymeleaf


我正在学习javaee相关技术(我是相对新手),并尝试使用Spring和Thymeleaf作为前端编写简单的Web应用程序,并且我在模块化方面遇到了一些问题。

出于安全目的,我发现它用于将. html文件打包到WEB-INF目录中,但是,据我猜测,这意味着我必须将我所有的视图放在那里,在这个项目中有控制器。我想通过拥有许多项目来避免这种情况,例如:

  • web-app
  • admin-模块
  • 用户模块
  • 核心模块

它们中的每一个都有自己的模块特定控制器和视图(htmls),web-app将它们全部组合成一个大型项目。

在Thymelaf中,我发现了类似ClassLoaderTemplateResolver的东西,并得到了(也许是愚蠢的想法)如何将大项目分成许多项目-将htmls放入classpath资源目录中。通过这个,我可以从任何模块项目中要求任何html视图。这是否违反了一些安全原因?

我想问是否有人有类似的问题,并找到适当的解决方案如何优雅地将html web-app项目划分为许多较小的“上下文特定”项目?

这是我当前的项目结构。蓝色箭头表示哪个视图连接到哪个控制器:http://prntscr.com/4tqt9m

这是我在这里问的第一个问题,所以我希望你能理解我。

提前谢谢你。


共1个答案

匿名用户

您可能能够在运行时使用类路径查找合并多个Spring和Thymeleaf模块。只需确保您提供不同的限定名称/文件夹结构(例如:不同包上名为view/index. html的两个文件可能会导致令人困惑的不一致)

使用Spring,如果您正确配置类路径扫描,它应该考虑类路径上的jar包。

使用Thymeleaf,尝试设置一个带有前缀的TemplateResolver,例如classpath:/template/,然后在不同的模块上设置一个文件夹结构,例如src/main/资源/template/package-a/foo. htmlsrc/main/资源/模板/package-b/foo.html。我还没有尝试过这个,也不能100%确定类加载器可以很好地合并这些。

相关问题