0

我有这样的代码和平:

<%
ArrayList<Utente> lista=null;
try{
    lista= (ArrayList<Utente>)request.getAttribute("lista");
}catch(Exception e){
    e.printStackTrace();
}
    if(lista!=null){                    
for(int i=0;i<lista.size();i++){                                                                                        out.print("<tr>");
                        out.print("<td>"+lista.get(i).getNome()+"</td>");
                        out.print("<td>"+lista.get(i).getCognome()+"</td>");
                        out.print("<td>"+lista.get(i).getPosizione()+"</td>");
                        out.print("<td>"+lista.get(i).getTelefono()+"</td>");
                        out.print("<td><img src='imm/view.png'>&nbsp"+
                                "<a href='' id='"+lista.get(i).getIdUtente()+"' class='view'>Vedi</a>&nbsp &nbsp" 
                                +"<img src='imm/mod.png'>&nbsp"+
                                "<a href='InfoUtente&id="+lista.get(i).getIdUtente()+"' id='"+lista.get(i).getIdUtente()+"' class='mod'>Modifica   </a>&nbsp &nbsp"+
                                 "<img src='imm/del.png'>&nbsp"+
                                "<a href='' id='"+lista.get(i).getIdUtente()+"' class='del' name='"+lista.get(i).getNome()+" "+lista.get(i).getCognome()+"'>Elimina   </a></td>");
                         }

                }
                        %>

我现在要做的是在单击某个索引上的链接 Modifica 时调用 servlet InfoUtente。所以我想将 index 参数传递给 servlet。我能怎么做?

4

3 回答 3

1

就像你做的那样,除了查询字符串必须以 a?而不是 a开头&

<a href='InfoUtente?id="+lista.get(i).getIdUtente()
                   ^-- here

&用于分隔查询字符串内的参数。它必须是 HTML 转义的。因此,如果您要传递第二个参数,则需要生成以下 URL:

<a href='InfoUtente?id=" + theId + "&amp;foo=bar"

请注意,从 Java 代码生成 HTML 不是一个好习惯。它会导致难以阅读、无法维护的代码。应该避免使用小脚本。您应该使用 JSTL 标记和 JSP EL 来做到这一点:

<c:forEach var="utente" items="${lista}">
    <tr>
        <td><c:out value="${utente.nome}"/></td>
        <td><c:out value="${utente.cognome}"/></td>
        <td><c:out value="${utente.posizione}"/></td>
        <td><c:out value="${utente.telefono}"/></td>
        <td>
           <img src="imm/view.png"/>&nbsp;
           <a href="" id="${utente.idUtente}" class="view">Vedi</a>
           &nbsp;&nbsp;
           <img src="imm/mod.png"/>&nbsp;
           <a href="<c:url value="InfoUtente">
                        <c:param name="id" value="${utente.idUtente}"/>
                    </c:url>" class="mod">Modifica</a>
           &nbsp;&nbsp;
           <img src="imm/del.png"/>&nbsp;
           <a href="" class="del" name="<c:out value="${utente.nome} ${utente.cognome}"/>">Elimina</a>
        </td>
    </tr>
</c:forEach>

请注意结构如何更具可读性。另请注意

  • 它是&nbsp;而不是&nbsp
  • 您不能有多个具有相同 ID 的元素。这是无效的。
  • <c:out>允许转义特殊字符。因此,如果任何属性包含 a<或 a>或 a&例如,它不会导致无效的 HTML(或更糟:导致 XSS 攻击)
  • using<c:url>允许使用绝对路径而不是相对路径,而无需对上下文路径进行硬编码,并且它对参数进行 URL 编码。
于 2013-02-04T11:03:58.407 回答
0

编写一个 java 脚本函数并在特定字段更改的 onClick(或 onSubmit 等)上调用该函数。在该函数内部构建一个类似“page.html?param=value”的字符串。并将页面重定向到那里。

于 2013-02-04T11:01:22.777 回答
0

我建议您使用 jsp 执行此操作,如下所示,关于您提到的问题,您必须提出?开始查询字符串而不是 &

检查下面的代码

<%
ArrayList<Utente> lista=null;
try{
lista= (ArrayList<Utente>)request.getAttribute("lista");
}catch(Exception e){
e.printStackTrace();
}
if(lista!=null){                    
for(Utente utente : lista){%>                                                                                               
<tr>
    <td><%=utente.getName()%></td>
    <td><%=utente.getCognome()%></td>
    <td><%=utente.getPosizione()%></td>
    <td><%=utente.getTelefono()%></td>
    <td>
          <img src='imm/view.png'>&nbsp
          <a href='' id='<%=utente.getIdUtente()%>' class='view'>Vedi</a>&nbsp &nbsp
           <img src='imm/mod.png'>&nbsp</a>
           <a href='InfoUtente?id=<%=utente.getIdUtente()%>' id='<%=utente.getIdUtente()%>' class='mod'>Modifica </a>&nbsp &nbsp
        <img src='imm/del.png'>&nbsp</a>  <!-- Here you have to put ? instead of & -->
         <a href='' id='<%=utente.getIdUtente()%>' class='del' name='<%=utente.getName()%>'>Elimina</a></td>
</tr>
<%}
}%>
于 2013-02-04T11:16:56.347 回答