我做过一些 php 开发,这种语言的大趋势是使用 smarty 或其他模板引擎之类的东西。
它通常大致运行如下:
将模板加载为常规字符串,查找其 {tags} 将每个 {tag} 替换为某些代码的结果。带有输入参数的缓存页面呈现结果页面。(有时会添加一些OO原则比如模板变成对象……)
当我查看 jsp 时,我看到了 scriplets、taglibs 的使用以及复杂的东西,比如
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ page import="ghhghjjgj"%>
然后 :
<logic:if>some html </logic:if>
或更糟:
<%= if (blabal) {%>
some html
<%}else ...%>
等等。
好的,tile 使我能够将一些 jsp 页面粘合在一起,这非常方便(就像 php 中的包含一样)
在我看来,php 方法在以下方面要好得多:
- 它完全分离了 gui 和模型处理。
- 当你在后面工作时更容易更改页面内容,你在一个真正的 java 类中,没有像 % @ <%= 这样复杂的东西。(谁说 ala C# 背后的代码;)?)
C# 方法也很有趣,但我只想解决我的问题中的模板部分,而不是开始任何 C# 与 Java 巨魔大战。我也不想说php更好。
我只是想知道为什么 java 中没有安装好的模板引擎以及为什么我们仍然使用 scriplets/taglibs。
所以我想我一定错过了什么。一些 Java EE Web 专家能否向我展示我推理的缺陷?