如何在innerHTML中编写Java代码

时间:2014-09-26 13:02:27

标签: java javascript html jsp

我的要求如下。

  1. 每当用户点击Additem按钮时,应在表格中添加一个新行。(表名:additionalInfoTable)。
  2. 必须有三个牢房。
  3. 前两个单元格必须包含文本字段。
  4. 第二个单元格必须有一个带有值列表的下拉列表。
  5. 为此,我在Javascript中编写了如下代码。但是当我从Java ArrayList生成下拉列值时,Java片段没有在InnerHTML中运行。

    function addAdditionalRow() {
            var table = document.getElementById("additionalInfoTable");
            var row = table.insertRow(-1);
            var cell1 = row.insertCell(0);
            var cell2 = row.insertCell(1);
            var cell3 = row.insertCell(2);
            var cell4 = row.insertCell(3);
    
            cell1.innerHTML =   '<input type="text" size="15" name="additionalCost" />';
            cell2.innerHTML =   '<input type="text" size="15" name="totalCost" />';
            cell3.innerHTML =   '<select name="recoveryType">'+                             
                                '<option>--Select Recovery Type--</option>';
    
                                <% for(String recType: details.getRecoveryTypeList()) { %>
                                var recType = '<%=recType%>';
            cell3.innerHTML =   '<option value="'+recType+'">'+recType%+'</option>';
                                <%}%>
    
            cell3.innerHTML =   '</select>';    
          cell4.innerHTML =     '<input type="button" value="Delete" onclick="deleteRow(this)"/>';  
        }
    

    我的桌面JSP代码如下。

    <table border ="1" width="100%" id="additionalInfoTable">
    <thead>
        <tr>
            <td align="center" ><b>Additional Cost $</b></td>
            <td align="center" ><b>Total Cost</b></td>
            <td align="center" ><b>Recovery Type</b></td>
            <td align="center" ><b>Delete</b></td></tr>
    
        </tr>
    </thead>        
        <tbody id="addBillbackdata">
            <tr>
                <td align="center">
                  <input type="text" size="15" name="additionalCost" />
                </td>
                <td align="center">
                  <input type="text" size="15" name="totalCost" />
                </td>
                    <select name="recoveryType">
                        <option>--Select Recovery Type--</option>
                        <% for(String recType: details.getRecoveryTypeList()) { %>
                        <option value="<%=recType%>"><%=recType%></option>
                        <%}%>
                    </select>
                </td>
                <td align="center">
                  <input type="button" value="Delete" onclick="deleteRow(this)"/>
                </td>
            </tr>
        </tbody>
    </table>
    

    请帮我在javascript的innerHTML中获取Java ArrayList值

1 个答案:

答案 0 :(得分:1)

您的javascript会修改浏览器中的HTML。 JSP代码在被传递到浏览器之前在服务器端编译。在javascript中无法使用JSP代码,因为浏览器无法解释它。你必须

  • 使用jsp创建所需的html,隐藏它(例如使用display:none),并使用javascript动态附加它
  • <script> - 标记内的jsp中创建一个全局javascript变量,并通过按钮回调引用它
  • 创建一个不同的jsp或servlet来传递数据并使用AJAX来请求它