正在阅读:困扰JSP的一些问题与解决方法困扰JSP的一些问题与解决方法

2004-04-02 10:19 出处:eNet硅谷动力 作者:佚名 责任编辑:sdq

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

  即使是很简单的工作,例如包含 header和 footer,在JSP中仍然很很困难。 假设有一个 "header"和一个 "footer"模板要包含到所有页面,而每一个模板要在content中包含当前的页标题。
在JSP中最佳办法是:
  <% String title = "The Page Title"; %>
  <%@ include file="/header.jsp" %>
  ...你的页面内容...
  <%@ include file="/footer.jsp" %>

  页面设计者要记住不能遗漏第一行的分号并要将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对象名字。
  <%
  Enumeration e = list.elements();
  while (e.hasMoreElements()) {
  out.print("The next name is ");
  out.println(((ISP)e.nextElement()).getName());
  out.print("<br>");
  }
  %>

  也许什么时候会有用户自定义标记来做这些循环。对"if"也是如此。JSP页可能看上去成了很古怪的java代码。而同时,webmacro循环很漂亮:
  #foreach $isp in $isps {
  The next name is $isp.Name <br>
  }

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

  用jsp的话很可能变这样:(这里是一个可能的 <foreach>标记)

  <foreach item="isp" list="isps">
  The next name is <jsp:getProperty name="isp" property="name"/> <br>
  </foreach>

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

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品