我在做工作流的待辦列表界面時(shí)遇到了一點(diǎn)小麻煩。
在這里我向沒有接觸過工作流的朋友,解釋一下待辦列表的概念:它指的是登錄人需要辦理的工作中的任務(wù)列表,例如:小張需要分別為工作WorkA,WorkB,WorkC辦理TaskB ,則當(dāng)小張以他的用戶名xz登錄到工作流系統(tǒng)后,呈現(xiàn)給他的待辦列表就是
|
任務(wù)名 |
工作名 |
1 |
TaskB |
WorkA |
2 |
TaskB |
WorkB |
3 |
TaskB |
WorkC |
待辦列表頁面(waitList.jsp)的代碼很簡單,所以我就大意了,下面是我最初寫的代碼:
1 <%@ page language="java" contentType="text/html; charset=GBK"
2 pageEncoding="GBK" %>
3 <%@ page import="db.TaskList,java.util.List,java.util.Iterator,db.Task"%>
4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
5 <html>
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=GBK">
8 <title>待辦列表</title>
9 </head>
10 <body>
11
12 <%
13 String userName=request.getParameter("userName");
14 session.setAttribute("username",userName);
15 TaskList taskList=new TaskList();
16 List waitTasks=taskList.getWaitTasks(userName);//得到待辦列表
17 %>
18 </div>
19 <div align="center">
20 <p>待辦列表
21 </p>
22 <form name="myform" method="post" action="">
23 <p>
24 <input type="button" name="Submit2" value="創(chuàng)建" onclick="javascript:window.location.replace('draft.jsp')">
25 </p>
26 <table width="200" border="1">
27 <tr>
28 <td> </td>
29 <td>TASK_ID</td>
30 <td>NODE_ID</td>
31 <td>PROCESS_ID</td>
32 </tr>
33
34 <%
35 for(Iterator it=waitTasks.iterator();it.hasNext();)
36 {
37 Task task=(Task)it.next();
38 %>
39 <tr>
40 <td align="center">
41 <input type="radio" name="radio" value="<%=task.getTask_id()%>">
42 </td>
43 <td><%=task.getTask_id()%></td>
44 <td><%=task.getNode_id()%></td>
45 <td><%=task.getProcess_id()%></td>
46 </tr>
47 <%
48 }
49 %>
50 </table>
51 <p>
52 <input type="button" name="do" value="辦理" onclick="manage()">
53 </p>
54 </form>
55 <p> </p>
56 </div>
57 </body>
58 </html>
59 <script language="JavaScript">
60
61 function manage()
62 {
63 for(var i=0;i<window.document.myform.radio.length;i++)
64 {
65 if(window.document.myform.radio[i].checked)
66 {
67 window.location.replace('deal.jsp?taskId='+window.document.myform.radio[i].value);
68 break;
69 }
70 }
71 }
72 </script>
可是經(jīng)過我的測(cè)試,當(dāng)待辦列表中只有一條記錄的時(shí)候出錯(cuò)!經(jīng)過我的分析是第63行的radio.length出錯(cuò),因?yàn)橹挥挟?dāng)radio為數(shù)組類型時(shí),才有l(wèi)ength屬性,而當(dāng)待辦列表中只有一條記錄時(shí),radio不是數(shù)組類型,所以調(diào)用radio.length當(dāng)然出錯(cuò)了。改正它其實(shí)很容易,就是保證radio是數(shù)組類型,解決辦法是在第33行加一條語句<input type="radio" name="radio" style="display:none">,問題解決了,因?yàn)榇藭r(shí)的radio.length>=2。