doukuiqian5345 2012-06-20 09:25
浏览 28
已采纳

使用jsp / taglibs与模板引擎

I've done some php dev and the big trend in this language is using things like smarty or other template engine.

It usually roughly runs as follows :

load the template as a regular string, look for its {tags} replace each {tag} with the result of some code. cache page with input parameters render resulting page. (sometimes add some OO principles such as template becomes an object...)

When I look at jsp, I see usage of scriplets, taglibs with complicated things like

<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ page import="ghhghjjgj"%>

then :

<logic:if>some html </logic:if>

or worse :

<%= if (blabal) {%>
some html
<%}else ...%>

and so forth.

Okay, tiles enables me to glue together some jsp pages together which is really handy (like the include in php, sort of)

It seems to me that the php approach is much better in the way that :

  • It totally separates gui and model processing.
    -It's easier to change the pages content when you are working on the behind part, you're in a real java class with no complicated stuff like % @ <%=. (who said code behind ala C# ;) ?)

The C# approah is very interesting as well but I just want to adress the template part in my question and not start any C# Vs Java Troll war. I do not also want to say php is better.

I just want to know why there is not a well installed templating engine in java and why we still use scriplets/taglibs.

So I guess I must be missing something. Can some Java EE Web expert show me the flaws of my reasoning?

  • 写回答

3条回答 默认 最新

  • dongtuhe0506 2012-06-20 09:30
    关注

    J2EE became Java EE a long time ago. Drop the "2".

    No one should use scriptlets. It's 1999 technology. If you're seeing it in books, it's because the books are old. There's not a lot of good reasons for writing another servlet/JSP book now.

    Custom tag libraries have fallen out of favor. JSTL is the standard. It's unlikely that you'll need more than that.

    Templating is common - have a look at Velocity. One project I'm working on uses it exclusively for streaming HTML to the browser.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度