为什么我们在for循环中使用多个scriplet标签而不是一个

时间:2019-04-12 12:34:09

标签: java jsp servlets

我正在研究var collectionWrapper = new ObservableCollectionWrapper<object>(collection, this.Dispatcher); var defaultView = CollectionViewSource.GetDefaultView(collectionWrapper); JSP,并向大家提问,因为在几个视频中,我看到老师正在使用如下所示的片段,因此我使用了一个示例Servlets,任何array只是为了更好地显示我的意思。

objects

但是有时候,当他使用标准的<% Student[] students = new Student[]{students}; names.setAttribute("students", students)" %> 而不是for JSTL时,他在下面编写这样的脚本。

c:forEach

单个<% for (String temp : students) { %> <tr> <td><%=temp.getFirstName()%></td> <td><%=temp.getLastname()%></td> <% } %> <% %>之间有什么区别,我们是否需要像上面那样使用或不使用它?

1 个答案:

答案 0 :(得分:0)

可以使用其中任何一种。 c:forEach方法的 only 问题是您 可能必须安装并包括JSTL标记库。根据您的环境和技能,这可能会有些痛苦。

上面显示的示例使用带有JSP标记的“纯” Java。 <%%>之间的任何内容都是常规Java代码。这是内置在JSP语言中的。 <%=是使用内置在JSP中的out隐式对象的快捷方式(有关所有变量的列表,请参见this page)。也可以写成:

<%
  for (String temp : students) { %>
  <tr>
  <td><% out.print(temp.getFirstName()) %></td>
  <td><% out.print(temp.getLastname()) %></td>
<% } %>

但现在是警告。了解这一点很好,并且根据您的谋生方式,很可能会遇到JSP代码。我已经为即使在今天仍然拥有JSP代码的人们提供了咨询。但是到了@GyroGearless使JSP成为新项目的最佳实践的地步。最终,他们将业务逻辑与显示逻辑混合在一起。在具有UI人员和Java人员的大型项目中,可能很难分开工作。创建JSP标签库是为了最大程度地减少这种情况,但这并不是最佳选择。

今天的新项目将显示逻辑与后端逻辑分开。您可以利用本周的JavaScript库(即AngularJS,ReactJS,Ember等)来编写前端,并使用JAX-RS等现代技术来创建后端,从而创建一个具有REST / JSON接口的AJAX前端。 / p>