今天碰到一個非常離奇的問題
下面這段代碼中的紅色部分,是定義了一個按鈕
<logic:notEmpty name="labExamineForm" property="examineResultList">
<% int rowCount = 0; %>
<logic:iterate id="result" name="labExamineForm" property="examineResultList">
<tr bgcolor="#F3FBFF" id="RESULT_TABLE<%=rowCount%>">
<td>
<div align='center'> <bean:write name ="result" property="name"/></div>
</td>
<td>
<div align='center'> <bean:write name ="result" property="item"/></div>
</td>
<td>
<div align='center'> <bean:write name ="result" property="result"/></div>
</td>
<td>
<div align='center'> <html:button property="delButton" value="刪除" onclick=" delRow('RESULT_TABLE<%=rowCount %>')"/></div>
</td>
</tr>
<%rowCount++; %>
</logic:iterate>
</logic:notEmpty>
其中有一段jsp的取值語句(橙色部分)
但是每次在訪問這個頁面的時候,這個<%=rowCount %>始終沒被解析,以至於在頁面源檔案中紅色這段的html代碼是這樣的(<%=rowCount %>')"直接在源檔案裡面出現了)
<input type="button" name="delButton" value="刪除" onclick=" delRow('RESULT_TABLE<%=rowCount %>')"/>
嘗試各種方法無果,突然想到一點,<html:button 這種struts標籤是要經過伺服器的再次翻譯的,會不會因為這個出了問題
於是將將紅字部分改為 <input type="button"
終於正常工作,頁面源檔案中紅字部分被正確解析為
<input type="button" name="delButton" value="刪除" onclick=" delRow('RESULT_TABLE0')"/>
這個問題以前沒有碰到過,不知道是否屬於bug。
以上得到一點,在有jsp代碼加入的地方,盡量不用struts標籤
<input type="button" name="delButton" value="刪除" onclick=" delRow('RESULT_TABLE<%=rowCount %>')"/>