1

我正在执行 Spring MVC 和 JSP 中的第一步,我正在尝试找出执行以下操作的最佳方法:

我需要根据我的业务逻辑创建一个由一些静态 HTML 和一些出现在页面上的动态小部件组成的动态页面。每个小部件都是一个包含一些内容的 div:一个小部件可能会显示趋势,而另一个小部件可能会显示表格等。我真正需要做的是在运行时决定将哪个小部件放在页面中的特定位置并将其放置那里。换句话说,我需要用 JSP 标记文件或任何其他将提供小部件 HTML 的内容动态替换 JSP 文件中的某个占位符。我可以通过用一些 if 或 switch 语句包装每个占位符来简单地做到这一点,但我想知道是否有更清洁的方法来做到这一点。

谢谢,约西

4

3 回答 3

2

如果您想在 IDE 代码导航支持的情况下立即查看代码中包含的内容,那么列表<c:when>就是要走的路。

动态包含(例如<jsp:include page="${widgetName}" />)肯定会使代码更短,但也不太容易理解正在发生的事情。

于 2013-11-26T10:56:20.663 回答
1

JSP 动态包含可能会解决您的问题。请检查一下这个概念。

于 2013-04-25T13:55:48.650 回答
0

JSP,作为一种服务器端技术,不能参与运行时事件(即用户加载页面后);一旦呈现的响应(即 HTML)离开服务器并开始访问用户浏览器,JSP' 的角色就结束了。如果你想改变内容,你只能通过另一个请求来获得它。

有几种技术可以帮助您从较小的构建块(例如 JSP 包括、Apache Tiles 等)组装 HTML 响应,但根据定义,它们只能在请求时对预先知道的请求参数做出反应。

如果您需要运行时灵活性,您可以:

  • 始终构建一个包含所有潜在小部件的“完整”页面并将其返回给所有用户,但使某些元素最初隐藏(通过 CSS),用户对小部件的请求只会使其可见
  • 通过 AJAX 从服务器请求 HTML 片段并使用 JavaScript 将它们附加到页面。
于 2013-04-25T15:08:06.357 回答