为什么我们为for循环使用多个scriptlet标记而不是一个

问题描述 投票:0回答:1

我正在研究JSPServlets,并向你们提问,因为在很少的视频中我看到老师正在使用如下的scriplets,我使用了一个例子array,没有任何objectsjust来更好地表达我的意思。

<%
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>
<% } %>

单个<% %>对于for loop有什么区别我们需要像上面那样使用它还是没有?

java jsp servlets
1个回答
0
投票

可以使用其中任何一个。 c:forEach方法的唯一问题是您可能必须安装并包含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前端。

© www.soinside.com 2019 - 2024. All rights reserved.