1

我在 Tomcat 中有一堆 JSP 文件和后端。我有 3 个不同版本的 JSP,内部逻辑相同,但布局不同。所以如果我改变一些逻辑,我需要修复三个 JSP 文件。

这种情况的正确解决方案是什么?我想到了一些 XML 和 XSLT 堆栈:后端只提供 XML 格式的数据,而且对于每个布局,我都有 XSLT 可以发挥一些作用。

试想一下,您需要在 JSP 中提供各种语言的 stackoverflow。逻辑相同,但布局不同。

你能给我指出一些方向吗?

4

5 回答 5

1

这通常通过使用一些模板引擎来解决 - 您创建较小的页面片段,然后向模板引擎声明某些视图应该由这些部分组成,以某种方式组合在一起。

Struts tile 是 Java 世界中的经典示例,但与 Java 和其他语言中更现代的框架相比,它确实变得陈旧和粗糙。Tapestry 和 Wicket 是两个更现代的(虽然没有使用过)。

不过,对于只有 3 个页面,应用整个 Web 框架可能有点过头了,但是如果您的网站增长...

于 2008-09-25T11:47:39.063 回答
1

使用没有任何名声的普通旧 JSP:

1)使用控制器进行处理,只使用jsp显示数据

2) 使用 jsp 包含指令将页眉、导航、菜单、页脚和其他必要的公共/共享元素包含到所有这些布局中。

或/和:

在 web.xml 中使用以下内容

    <jsp-property-group>
        <url-pattern>/customers/*</url-pattern>
        <include-prelude>/shared/layout/_layout_customers_top.jsp</include-prelude>
        <include-coda>/shared/layout/_layout_customers_bottom.jsp</include-coda>
    </jsp-property-group>

url 模式确定哪些 jsp 获取哪些 jsp 片段(Ruby on Rails 中的部分)附加到顶部/底部。

于 2008-09-25T12:00:47.100 回答
1

了解 MVC(模型视图控制器)以及 JSP 应该是它的视图部分并且不应该包含任何逻辑的想法。逻辑属于模型类。

于 2008-09-25T12:14:09.843 回答
0

看看瓷砖。

于 2008-09-25T11:46:05.667 回答
0

这是一个非常经典的问题领域,有很多概念和框架试图解决这个问题(MVC 框架,如 Struts 和 JSF,SessionBeans 等等)。由于我怀疑您并不是真正的 Java 企业“传道者”,因此我将给您 2 个简单的建议。

  1. 您的 JSP 中显然有很多冗余代码。将此代码提取到“真正的”Java 类中,并在所有 JSP 上使用它们。这样,您将能够在一个地方修改业务逻辑,冗余将不再是一个问题。

  2. 看看级联样式表 (CSS)。这是最先进的网页布局方式。如果您有精心设计的 html + CSS,您甚至可能不需要针对不同布局使用不同的 JSP。

问候

于 2008-09-26T09:29:14.117 回答