学院首页>网络编程>JSP>JSP编程进度条设计实例(4)

JSP编程进度条设计实例(4)

作者: 来源: 添加时间:2006-5-21 19:23:01

  三、任务进度


  status.jsp页面利用一个HTML进度条向用户显示任务的执行情况。首先,status.jsp利用<jsp:useBean>标记获得start.jsp页面创建的Bean对象:


<jsp:useBean id="task" scope="session"
class="test.barBean.TaskBean"/>


  为了及时反映任务执行进度,status.jsp会自动刷新。JavaScript代码setTimeout("location='status.jsp'", 1000)将每隔1000毫秒刷新页面,重新请求status.jsp,不需要用户干预。


<HTML>


<HEAD>
<TITLE>JSP进度条</TITLE>
<% if (task.isRunning()) { %>
  <SCRIPT LANGUAGE="JavaScript">
   setTimeout("location='status.jsp'", 1000);
  </SCRIPT>
<% } %>
</HEAD>


<ODY>


  进度条实际上是一个HTML表格,包含10个单元——即每个单元代表任务总体的10%进度。


<H1 ALIGN="CENTER">JSP进度条</H1>


<H2 ALIGN="CENTER">
  结果: <%= task.getResult() %><BR>
  <% int percent = task.getPercent(); %>
  <%= percent %>%
</H2>


<TABLE WIDTH="60%" ALIGN="CENTER"
   BORDER=1 CELLPADDING=0 CELLSPACING=2>
  <TR>
   <% for (int i = 10; i <= percent; i += 10) { %>
<TD WIDTH="10%" BGCOLOR="#000080">&nbsp;</TD>
   <% } %>
   <% for (int i = 100; i > percent; i -= 10) { %>
<TD WIDTH="10%">&nbsp;</TD>
   <% } %>
  </TR>
</TABLE>
 
  任务执行情况分下面几种状态:正在执行,已完成,尚未开始,已停止:


<TABLE WIDTH="100%" BORDER=0 CELLPADDING=0 CELLSPACING=0>
  <TR>
   <TD ALIGN="CENTER">
<% if (task.isRunning()) { %>
  正在执行
<% } else { %>
  <% if (task.isCompleted()) { %>
   完成
  <% } else if (!task.isStarted()) { %>
   尚未开始
  <% } else { %>
   已停止
  <% } %>
<% } %>
   </TD>
  </TR>
 

站内搜索