0

我希望借用某人的大脑(和经验)来找出实现以下内容的最佳方法。

我目前正在开发一个应用程序,该应用程序将被我们的许多客户使用,并且需要根据每个客户的要求进行 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 来处理。

那你们怎么看?此外,它将如何影响重定向?如果您需要有关我们的设置或要求的更多信息,请告诉我。

问候,
苏米特

4

2 回答 2

0

您可以使用图块来控制视图的渲染,它有一个与 spring 捆绑的默认视图解析器,您可以扩展它。

定义自定义布局,扩展它们并更改它以防您需要其他行为。

http://tiles.apache.org/

于 2012-05-01T11:59:32.710 回答
0

在等待更多评论/建议后,正如 JB 建议的那样,按照问题本身的描述使用我自己的解决方案。

感谢你的帮助。

于 2012-05-14T14:08:23.823 回答