通过jsp动态生成表行标记的id

时间:2018-04-05 13:40:02

标签: javascript java html5 java-ee

我想使用JSP为HTML中的每个标记分配一个唯一的id。

代码段......

 <%

        ArrayList<HospitalDTO> list=(ArrayList<HospitalDTO>)request.getAttribute("arrayList");
        for(HospitalDTO hsp:list)
        {
            long no=hsp.getNumber();
            //session.setAttribute("contactNumber",no);
            String name=hsp.getName();
            Date nextDD=hsp.getNextDD();
            Date lastDD=hsp.getLastDD();

            out.println("<tr><td class='text-center' >"+no+"</td><td class='text-center'>"+name+"</td><td class='text-center'>"+lastDD+

                    "</td><td class='text-center'>"+nextDD+"</td><td class='text-center'><input type='submit' class='btn btn-info' value='Notify Donor'></td></tr>");
        }

    %>

1 个答案:

答案 0 :(得分:0)

您正在使用for循环生成每个HTML行元素。因此,您可以使用行索引来确保唯一ID。例如,以下代码为每个tr元素生成ID,从&#34; row_0&#34;开始:

<%

    ArrayList<HospitalDTO> list=(ArrayList<HospitalDTO>)request.getAttribute("arrayList");
    for(int i = 0; i < list.size(); i++) {
        HospitalDTO hsp = list.get(i);
        long no=hsp.getNumber();
        //session.setAttribute("contactNumber",no);
        String name=hsp.getName();
        Date nextDD=hsp.getNextDD();
        Date lastDD=hsp.getLastDD();
        String rowId = "row_" + i;

        out.println("<tr id='" + rowId + "'><td class='text-center' >"+no+"</td><td class='text-center'>"+name+"</td><td class='text-center'>"+lastDD+

                "</td><td class='text-center'>"+nextDD+"</td><td class='text-center'><input type='submit' class='btn btn-info' value='Notify Donor'></td></tr>");
    }

%>

- 编辑 -

请求者后来指定他想提交行索引。在这种情况下,我会sugest从表中删除那些提交按钮,在每行上放置单选按钮,并在表下面有一个提交按钮。该提交按钮将仅提交所选单选按钮的值。 表生成的JSP代码

<%

    ArrayList<HospitalDTO> list=(ArrayList<HospitalDTO>)request.getAttribute("arrayList");
    for(int i = 0; i < list.size(); i++) {
        HospitalDTO hsp = list.get(i);
        long no=hsp.getNumber();
        //session.setAttribute("contactNumber",no);
        String name=hsp.getName();
        Date nextDD=hsp.getNextDD();
        Date lastDD=hsp.getLastDD();

        out.println("<tr><td><input type='radio' value='" + i + "'></td><td class='text-center' >"+no+"</td><td class='text-center'>"+name+"</td><td class='text-center'>" + lastDD + "</td><td class='text-center'>" + nextDD + "</td></tr>");
    }

%>

另外,不要忘记将所有内容都包装到form元素,以便提交正常工作。