spring - JSP 是否被取代,如果是,如何被取代?

标签 spring jsp templates deprecated

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

最佳答案

Spring(以及 Struts、Apache Wicket 和其他框架)基于 servlet。当您使用 Spring for web 时,您使用的是 servlet 作为底层技术。
JSP 确实有点过时了。并且有一些不便之处。例如,JSP 对网页设计师来说是一个真正令人头疼的问题。设计人员不能只打开 JSP 文件,进行一些更改,然后在浏览器中检查结果,因为 JSP 文件包含对 HTML 无效的标记。查看页面在浏览器中的外观的唯一方法是部署应用程序并让服务器呈现它。
JSP 的另一个不便之处是您不能将通用布局外部化到专用文件中。您所能做的就是使用 <jsp:include> 将一个页面导入另一个页面。 .如果你有数百个文件,你必须重复相同的 <jsp:include>在所有这些中复制公共(public)部分。

当您有数百个复杂的动态页面时,有些模板引擎更适合大型项目。一种流行的模板引擎是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>
还有许多其他附加功能,例如对国际化的内置支持、将参数传递给片段等。
您可以找到有关 Thymeleaf 和 JSP 比较的更多详细信息 herehere .

关于spring - JSP 是否被取代,如果是,如何被取代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41309564/

相关文章:

java - 如何通过 Controller POST 请求更新 View 中的某些属性

c++ - Ubuntu和make中的模板编译错误

javascript - 在 django 项目中放置 Angular ng-templates 的位置

python - 计算 flask 模板中的行数

java - 如何在 Spring Batch : Updated 中循环运行步骤

java - 如何使用 Spring 订阅传入的 SSE 事件

javascript - 从 jsp 中的 Link 调用 Ajax 函数 [a href= onclick =""]

java - 如何解决Spring Boot应用程序中的CORS问题?

java - 从一个页面导航到另一个页面( View 范围)时在支持 bean 中设置属性不起作用

javascript - 如何在jsp页面显示图片?