【问题标题】:Simplifying JSP code简化 JSP 代码
【发布时间】:2013-12-26 21:46:29
【问题描述】:

使用的工具和技术:JEE, EJB, MVC(servlets + JSP's), JPA, MySQL, TomEE server, Eclipse IDE

我有一个很长的JSP,请教我应该如何将这个JSP 页面的某些部分放在单独的位置,然后在JSP 中调用它(对象或其他)。

实际上,我正在从ServletContextListener 的数据库中读取一些数据,并将这些数据(在list 中)存储在servlet context 中。然后在JSP 中,我通过读取该数据来创建菜单项。所以,我使用了几个嵌套的JSTL foreach 循环和if statements 从列表中检索数据。这一切都是在<nav> 标签下生成JSP 标记。

所以,我想知道有没有办法将这部分分开,然后在JSP 中调用它? (使其更加面向对象)

【问题讨论】:

    标签: jsp servlets model-view-controller


    【解决方案1】:

    您可以将在您的 JSP 中重复的内容移动到一个单独的文件中,并使用 <jsp:include page="relativeUrl" /> 将其包含在主 JSP 中

    第二种选择是当您编写自己的标签库时,它可能会更接近 OO 风格。

    【讨论】:

    • 感谢您的帮助,<jsp:include/> 正好适合
    【解决方案2】:

    @Spindizzy 的回答是回答您当前问题的最佳答案,但我的建议是您研究一下像 JSF 这样的 MVC 框架。随着应用程序的增长,维护将变得非常困难。如果您在一个限制您可以使用的库的环境中工作,或者您不希望管理大量 JAR 文件依赖项,那么 JSF 是一个不错的选择,因为它带有所有主要的 Java-EE 兼容应用程序服务器。

    【讨论】:

    • 我必须为这个应用程序使用普通的 MVC。这是一个简单的项目,但我使这个 JSP 变得复杂,所以寻找如何解析它。无论如何,谢谢你的建议。
    • 我明白了。如果您需要 Google 以获取更多信息,请查找“Model 2 MVC JSP”,这就是在 JSF 之前的日子里这种方法被称为的东西。应该有一些技巧可以帮助这种编码方法。
    • 我明白了。您能否确认我是否正确:我的JSP 页面遵循HTML5 标准(页眉标签、导航标签、侧边标签、页脚标签......)。这些相同的标签在几个不同的JSP 页面中重复出现。将这些标签中的每一个放在单独的JSP 中并将其包含在主要JSP 中是否明智?所以,基本上只有JSP的主要内容会改变,其他部分会被导入(包含)。
    • 那将是最简单的方法。您可以做的另一件事是使用 HTML5 本身来包含任何功能,但 jsp:include 方法将节省您的往返次数。
    猜你喜欢
    • 2011-08-09
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多