您的位置:首页-> 文章首页-> 网站开发-> JSP教程-> 我认为JSP有问题(2)

JSP教程

ASP教程
PHP教程
JSP教程
.NET教程
HTML、CSS
JavaScript

本类阅读TOP10

·JSP技术简介之一
·在 Linux 上安装Apache+ApacheJServ+JSP
·JSP技术简介之二
·JSP技术简介之三
·JSP技术简介之四
·在win98下安装JSP环境(jswdk或tomcat在Jdk1.3下)
·ASP与JSP的比较
·Tomcat环境的建立(一)
·JSP连接数据库大全
·我认为JSP有问题(3)

精品推荐
我认为JSP有问题(2)

作者:未知  来源:未知  加入时间:2005-10-12 

问题 #3: 简单工作仍然很累人

  即使是很简单的工作,例如包含 header和 footer,在JSP中仍然很困难。假设有一个"header"和一个"footer"模板要包含到所有页面,而每一个模板要在content中包含当前的页标题。

  在JSP中最佳办法是:

  $#@60;% String title = "The Page Title"; %$#@62;

  $#@60;%@ include file="/header.jsp" %$#@62;

  ...你的页面内容...

  $#@60;%@ include file="/footer.jsp" %$#@62;

  页面设计者要记住不能遗漏第一行的分号并要将title定义为一个字符串。此外,/header.jsp和/footer.jsp必须在根目录下并且必须是可存取的完整文件。

  在WebMacro中包含headers和footers做起来比较简单:

  #set $title = "The Page Title"

  #parse "header.wm"

  Your content here

  #parse "footer.wm"

  这里对设计者来说没有要牢记的分号或对title的定义,.wm文件可以放在可自定义的搜索路径下。
问题 #4: 很粗燥的循环

  在JSP中循环很困难。这里是用JSP重复打印出每一个ISP对象名字。

  $#@60;%

  Enumeration e = list.elements();

  while (e.hasMoreElements()) {

  out.print("The next name is ");

  out.println(((ISP)e.nextElement()).getName());

  out.print("$#@60;br$#@62;");

  }

  %$#@62;

  也许什么时候会有用户自定义标记来做这些循环。对"if"也是如此。JSP页可能看上去成了很古怪的java代码。而同时,webmacro循环很漂亮:

  #foreach $isp in $isps {

  The next name is $isp.Name $#@60;br$#@62;

  }

  如果必要的话,#foreach指令可被自定义的 #foreach-backwards指令很容易地取代。

  用jsp的话很可能变这样:(这里是一个可能的 $#@60;foreach$#@62;标记)

  $#@60;foreach item="isp" list="isps"$#@62;

  The next name is $#@60;jsp:getProperty name="isp" property="name"/$#@62; $#@60;br$#@62;

  $#@60;/foreach$#@62;

  设计者当然地会选择前者。


相关文章

相关软件