我希望借用某人的大脑(和经验)来找出实现以下内容的最佳方法。
我目前正在开发一个应用程序,该应用程序将被我们的许多客户使用,并且需要根据每个客户的要求进行 UI 定制。尽管底层的 java 代码和业务逻辑是相同的,但在运行时我想(通过一些属性)确定应用程序正在为哪个客户端运行,从而选择相应的视图并显示网页。
目前,我能想到的只是创建一个自定义 ViewResolver(扩展 InternalResourceViewResolver),它将读取客户端名称属性并使用它来解析视图(例如:WEB-INF/jsp//account/myAccount.jsp)或默认为如果客户端属性不存在,则为另一个视图(例如:WEB-INF/jsp/default/account/myAccount.jsp)。
我在这里看到的问题是,我可能不想为应该呈现默认视图的特定客户端覆盖我的所有 JSP。这将需要一个 I/O 调用来检查客户端文件夹中是否存在 JSP 文件,然后再恢复为默认值。为了应对 I/OI,甚至可以在应用程序启动时创建一个覆盖 JSP 的 Map,但这将需要在添加新的自定义 JSP 时重新启动应用程序,这又可以通过公开一些服务来刷新此 Map 来处理。
那你们怎么看?此外,它将如何影响重定向?如果您需要有关我们的设置或要求的更多信息,请告诉我。
问候,
苏米特