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条)

报告相同问题?

悬赏问题

  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入