2009-07-20 12 views
0

Ich habe ein Servlet geschrieben, das eine HTML-Seite erstellt, die den Inhalt einer Datenbank zeigt. Der Code lautet:HTML-Formular, Optionsfeld und 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>"); 

Ich habe eine Optionsschaltfläche zu jeder Zeile hinzugefügt. Mit diesem Code kann ich im Browser eine Tabelle mit dem Inhalt der Datenbank anzeigen. Wenn ich auf submit klicke, möchte ich das vale 'k' für die ausgewählte Zeile an ein anderes Servlet senden. Ich habe eine schwere Zeit damit. Ich denke, ich sende den Wert falsch. Reicht es im zweiten Servlet aus, getParameter() zu verwenden, um die Informationen zu erhalten?

Danke!

Antwort

0

Im zweiten Servlet können Sie:

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

den Wert zu lesen. Sie müssen den Namen des zu erledigenden Parameters kennen. Wenn dies nicht bekannt ist, können Sie versuchen, die Parameter aufzuzählen:

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

Dies funktioniert nur für Parameter mit einem einzigen Wert.

+0

Ich verstehe es immer noch nicht. Was ist was im Anfrage-Objekt transmited, welches Format hat es? Wenn ich eine Optionsschaltfläche auswähle und auf die Senden-Schaltfläche klicke, ist es nicht nur die Optionsschaltfläche, was an das Servlet übertragen wird? Wenn ich Knopf in Reihe Nr. 1 und im Servlet wähle, verwende: String value = request.getParameter ("titulo1"); Wenn ich den Wert von 'Wert' drucke, heißt es, es ist null –

+0

Verwenden Sie Methode = "GET" in Ihrem Formular. Beim Absenden solltest du eine URL wie myservlet? Titulo1 = k in der Adresszeile sehen. Die Parameter werden an die Servlet-URL übergeben, die im Anforderungspfad codiert ist. Mit der POST-Methode werden sie am Körper der Anfrage eingefügt, aber es ist eigentlich das Gleiche. – kgiannakakis

0

Ist diese Zeile korrekt?

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