动态地将JSP标记放在JSP页面上

时间:2013-04-25 13:30:36

标签: jsp spring-mvc jsp-tags

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

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

谢谢, Yosi

3 个答案:

答案 0 :(得分:2)

如果您希望在代码中立即查看包含IDE代码导航支持的内容,则可以使用<c:when>列表。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

JSP,作为服务器端技术,不能参与运行时事件(即用户加载页面后);一旦呈现的响应(即HTML)离开服务器并开始前往用户的浏览器,JSP的角色就结束了。如果您想更改内容,则只能通过提出其他请求来获取内容。

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

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

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