是否取代了JSP,如果是,如何?

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

自从我使用JSP和servlet以来已经有一段时间了。现在我发现JSP已经过时且不应该使用的一些材料。是这样吗?为什么?如果我们使用Spring Framework启动一个新项目并希望呈现网页或类似输出,我们应该使用什么来代替模板呢?

spring jsp templates deprecated
1个回答
4
投票

Spring(以及Struts,Apache Wicket和其他框架)基于servlet。当您使用Spring for web时,您将使用servlet作为底层技术。

JSP真的有点过时了。并且有一些不便之处。例如,JSP对于网页设计师来说真的很头疼。 Designer不能只打开JSP文件,在浏览器中进行一些更改和检查结果,因为JSP文件包含对HTML无效的标记。查看页面在浏览器中的显示方式的唯一方法是部署应用程序并让服务器呈现它。

JSP中的另一个不便之处在于您无法将常见布局外部化为专用文件。您所能做的就是使用<jsp:include>将一个页面导入另一个页面。如果你有数百个文件,你必须在所有文件中重复相同的<jsp:include>复制公共部分。


当你有数百个复杂的动态页面时,有更适合大项目的模板引擎。其中一个受欢迎的是Thymeleaf

Thymeleaf的模板只包含有效的HTML。这意味着设计师和程序员可以并行工作。它还具有良好的布局系统。此外,与JSP相比,Thymeleaf具有更加可读和优雅的语法。例如,在Thymeleaf中生成简单表的代码:

<html>
....
<table>
  <tr>
    <th>Name</th>
    <th>Price</th>
    <th>In stock</th>
  </tr>
  <tr th:each="prod : ${prods}">
    <td th:text="${prod.name}">Onions</td>
    <td th:text="${prod.price}">2.41</td>
    <td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
  </tr>
</table>
....
</html>

还有许多其他附加功能,如内置支持国际化,将参数传递给片段等。

有关Themeleaf和JSP比较的更多详细信息,您可以找到herehere

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