情况:我有一个应用程序,为每个特定的国家/地区使用单独的jsp文件(我使用视图解析器实现)。但是,使用这种方法,我必须重复每个国家/地区的jsp更改,即使该页面没有特定更改。
示例:对于“en”主题的用户我有不同的发票页面,而不是“de”主题的用户具有不同的布局和不同的逻辑。转到同一个控制器,根据用户有不同的动作。
但大多数时候逻辑和jsp页面是相同的(例如帐户列表)。
问题:如何保留此逻辑并为该特定操作制作后备页?如果存在/de/invoice.jsp只是使用其他使用/invoice.jsp(就像drupal中的主题一样)
我使用tomcat作为应用程序服务器。
有什么建议吗?
(请注意,通过“主题”我并不是指Spring对主题的支持,而是Spring的主题可以解决一般问题。)
答案 0 :(得分:0)
基本上您只想动态选择<jsp:include>
页面。
假设您将页面名称包含在名为“invoicePage”的变量中。然后,视图解析器中引用的页面模板可以包含该变量,如下所示:
<jsp:include page="${invoicePage}"/>
因此,唯一的诀窍是选择正确的invoicePage。
Spring主题有一个很好的解决方案:将特定于主题的include的名称放在特定于主题的属性文件中,Spring将负责回退到您的默认值。
或者,您可以实施自己的,可能基于一个配置,该配置列出具有特定内容的国家或根据每个国家/地区设置指标的配置。哪种解决方案适当取决于您如何配置应用程序的其余部分。