2013-04-25 65 views
1

我与我的Spring MVC和JSP第一步做什么,我试图找出什么是应该做以下的最佳方式:动态把JSP标签的JSP页面上

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

感谢, Yosi

回答

1

JSP动态包含可以解决你的问题。请检查一次该概念。

0

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

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

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

  • 总是建立一个“全”,该网页包含所有可能的部件,并将其返回给所有用户,但做一些初步隐藏要素(通过CSS) ,用户对小部件的请求只会使其可见
  • 通过AJAX从服务器请求HTML片段,并使用JavaScript将它们附加到页面上。
+0

我的意思是如何在服务器端做到这一点。给它一些想法,我真正需要的是在Spring将它转换为HTML之前,将JSP include语句动态地插入到视图(JSP文件)中的一种方法。可能吗? – Yosef 2013-04-25 16:49:07

2

如果您想在代码中立即看到包含IDE代码导航支持的内容,则需要使用<c:when>列表。

动态包含(例如<jsp:include page="${widgetName}" />)会使代码确实短得多,但也不太容易理解发生了什么。