Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSP页面上动态放置JSP标记_Jsp_Spring Mvc_Jsp Tags - Fatal编程技术网

在JSP页面上动态放置JSP标记

在JSP页面上动态放置JSP标记,jsp,spring-mvc,jsp-tags,Jsp,Spring Mvc,Jsp Tags,我正在用Spring MVC和JSP完成我的第一步,并试图找出实现以下目标的最佳方法: 我需要创建一个动态页面,该页面由一些静态HTML和一些动态小部件组成,这些小部件根据我的业务逻辑显示在页面上。每个小部件都是一个包含一些内容的div:一个小部件可能会显示一个趋势,而另一个小部件可能会显示一个表,等等。我实际需要做的是在运行时决定将哪个小部件放在页面中的特定位置并将其放在那里。换句话说,我需要用JSP标记文件或任何其他将提供小部件HTML的东西动态地替换JSP文件中的某些占位符。我可以简单地用

我正在用Spring MVC和JSP完成我的第一步,并试图找出实现以下目标的最佳方法:

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

谢谢,
Yosi

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

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

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

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

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

如果您想在使用IDE代码导航支持的情况下立即查看代码中包含的内容,则可以使用
列表


动态包含(例如
)肯定会使代码更短,但也不容易理解正在发生的事情。

我的意思是如何在服务器端做到这一点。考虑一下,我真正需要的是在Spring将其转换为HTML之前,将JSP包含语句动态插入视图(JSP文件)。可能吗?