JSP:Radiobuttons dynamisch benennen

Von: , Frage gestellt am Do, 13. Mai 2004

Hallo. Bei mir ist das nächste Problenm aufgetaucht. Wäre alles nicht so schlimm, wenn ich nicht zeit druck hätte :)
Also bitte ich nochmal um Hilfe.
Ein Java Bean produziert ein String Array und gibt es an eine JSP Seite weiter. Die erstellt für die Array Einträge eine Tabelle. Jeder Eintrag soll einen eigenen Radiobutton bekommen, damit ich nacchher einen davon auswählen kann und angezeigt kriege was sich dahinter verbirgt(in diesem Fall Emails)
Der JSP Code sieht so aus:

<html>
<body>
<jsp:useBean id="accessBean" class="mailwap.MailAccessBean" />
<%! private String [] outPutArray ; %>
<% outPutArray = accessBean.get_strArray(); %>
<table border="3" frame="box">
<%! int i=0;%>
<%! String EmailButton="";%>
<% for(int i = 0 ;i<outPutArray.length/2; i++)
{EmailButton=String.valueOf(i);
out.println("<tr> <th>"+ outPutArray[i*2] +"</th>"
+"<th>"+ outPutArray[i*2+1] +"</th> "+"<th><input type=\"radio\" name=\"MailAccessButton\"
value=\"EmailButton\"></th></tr>");}
%>
</table>
<form action="/GetMessage" method="post">
<tr>
<td colspan="2" align="center"><input type="submit" name="GetMessageButton" >Zurück</td>
<td colspan="2" align="center"><input type="submit" name="ReadMessageButton" >Lesen</td>
</tr>
</body>
</html>


Und die doGet Methode aus dem JavaBean
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

if (request.getParameter("GetMessageButton") != null) {
pageReDirect("/jsp/StartMail.jsp", request, response);
}else{if(request.getParameter("ReadMessageButton") !=null)
{ System.out.println("Auslesen des Buttons MailAccessButton");
String _strChosenMessageButton= request.getParameter("MailAccessButton");
System.out.println(_strChosenMessageButton);

}
}}

Ich hatte gedacht ich könnte ganz einfach über den String EmailButton jedem RadioButton den Wert geben der dem ArrayEintrag entspricht. Wenn ich aber im Bean die Ausgabe teste wenn das Request aufgerufen wurde, bekomme ich nur null.

Kann mir jemand sagen wie ichs besser mache?

Danke Mathias

3 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: JSP:Radiobuttons dynamisch benennen

    <form action="/GetMessage" method="post">
    ...
    </tr>
    Kann mir jemand sagen wie ichs besser mache?
    Die Radio-Buttons innerhalb der <form> anzeigen, sonst werden
    die nicht mit an dein Servlet geschickt.
    Das <form>-Tag musst du uebrigens noch schliessen.

    Gruss, Patrick

    • Antwort von nach 2 Stunden 0 hilfreich
      Re^2: JSP:Radiobuttons dynamisch benennen

      Das Formular erst unten einzutragen, und die buttons somit auszuschliessen, ich muss zugeben, dass ist mir jetzt peinlich.
      Aber es besthet immer noch min Hauptproblem: ich weiss nicht wie ich den Buttons verschiedene Werte zuweise.
      Ich hab versucht es in dieser Art zu machen

      String Button = String.valueOf(i)
      //i ist die zählvariable der umgebenden Schleife

      <input type ="radio" name="accessbutton" value=Button >

      Also nen String immer wieder neu und verschieden zu erstellen und dann als Value einzutragen. Geht nicht.
      Weil die Anweisun g im Rahmen einer out.println Anweisung von jsp liegt, hab ich dann auch noch das Problem, das die Anführungsstriche immer miteinander kollidieren
      Warum geht es so nicht?

      ..."<input type=\"radio\" name=\"MailAccessButton\"
      value=\"<%=i %>\"</th></tr>".....

      Gruß Mathias

      • Antwort von nach 2 Stunden 1 hilfreich
        Re^3: JSP:Radiobuttons dynamisch benennen

        ..."<input type=\"radio\" name=\"MailAccessButton\"
        value=\"<%=i %>\"</th></tr>".....
        Wenn mich nicht alles taeuscht, muesste es dann in etwa so aussehen:

        <% 
        for (int i = 0; i < outPutArray.length/2; i++) {
        out.println("<tr> <th>"+ outPutArray[i*2] + "</th>"
        + "<th>" + outPutArray[i*2+1] + "</th> <th>" 
        + "<input type=\"radio\" name=\"MailAccessButton\" value=\"" + i + "\">"
        + "</th></tr>");
        }
        %>
        


        Wenn du mit den Anfuehrungszeichen durcheinander kommst, versuch
        es mal mit einfachen, also '.

        Gruss, Patrick

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!