2009-07-20 18 views
0

J'ai écrit une servlet qui construit une page html montrant le contenu d'une base de données. Le code est:Formulaire Html, bouton radio et servlet

Statement st = (Statement) conexion.createStatement();      
ResultSet rs = st.executeQuery("select * from audiolist"); 
while (rs.next()) 
    { 
    contador++; 
    out.println("<tr>"); 
    String k = rs.getString("Tittle"); 
    String l = rs.getString("Autor"); 
    String m = rs.getString("Album"); 
    out.println("<td>"+"<input type=\"radio\" name=\"titulo<%="+contador+"%>\"value=\""+k+"\">"); 
    out.println("<td>" + k + "</td>");       
    out.println("<td>" + l + "</td>"); 
    out.println("<td>" + m + "</td>");  
    out.println("</tr>"); 
    } 
    out.println("</table></center>"); 
    out.println("<tr><td colspan=2><input type=submit></td></tr>"); 
    out.println("</form>"); 

J'ai ajouté un bouton radio à chaque ligne. Avec ce code, je peux afficher dans le navigateur une table avec le contenu de la base de données. Lorsque je clique sur soumettre, je veux envoyer à une autre servlet la variable 'k' pour la ligne sélectionnée. J'ai du mal avec ça. Je pense que j'envoie la valeur incorrectement. Dans la deuxième servlet, est-ce suffisant d'utiliser getParameter() pour obtenir l'info?

Merci!

Répondre

0

Dans la deuxième servlet vous pouvez utiliser:

String value = request.getParameter("tituloX"); 

pour lire la valeur. Vous devez connaître le nom du paramètre à faire. Si cela ne sait pas, vous pouvez essayer d'énumérer les paramètres:

for (Enumeration e = request.getParameterNames(); e.hasMoreElements();) { 
    String param = (String) e.nextElement(); 
    String value = request.getParameter(param); 
} 

Cela ne fonctionne que pour les paramètres d'une valeur unique.

+0

Je ne le comprends toujours pas. Qu'est-ce qui est transmis dans l'objet requête, quel est le format? Lorsque je sélectionne un bouton radio et que je clique sur le bouton "Envoyer", n'est-ce pas simplement ce bouton radio qui est transmis à la servlet? Si je sélectionne le bouton dans la ligne numéro 1 et dans le servlet, utilisez: String value = request.getParameter ("titulo1"); Lorsque j'imprime la valeur de 'value', il est dit null –

+0

Utilisez method = "GET" dans votre formulaire. Lors de la soumission, vous devriez voir une URL comme myservlet? Titulo1 = k dans la barre d'adresse. Les paramètres sont transmis à l'URL de servlet codée sur le chemin de la requête. Avec la méthode POST, ils sont insérés dans le corps de la requête, mais c'est en fait la même chose. – kgiannakakis

0

Cette ligne est-elle correcte?

out.println("<td>"+"<input type=\"radio\" name=\"titulo<%="+contador+"%>\"value=\""+k+"\">"); 
Questions connexes