Datensatz aus MySQL-Tabelle lesen, Key aus Dropdownfeld in JSP lesen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datensatz aus MySQL-Tabelle lesen, Key aus Dropdownfeld in JSP lesen

    Hallo zusammen,
    ich habe ein Dropdownfeld, aus dem ziehe ich die ID's der vorhandenen Datensätze in meiner Tabelle "Artikel" in einer Mysql-Datenbank. Anhand des ausgewählten Keys möchte ich nun den Datensatz aus der Tabelle lesen und per JSP anzeigen.
    Das ganze funktioniert, allerdings nur, wenn ich die ID im Browser angebe, also bspw:

    localhost:8080/Flyershop/bin?module=Shop&action=edit_artikel&artikelnummer=556623&submit=Speichern

    Wenn ich die ID per Auswahlfeld auswähle und den Submit-Button drücke, bleibt die Artikelnummer "null" und es erscheint kein Datensatz in meiner JSP.

    Ich weiß nicht, was ich hier ständig übersehe...

    Hier der Code der JSP:

    Quellcode

    1. <%@page import="flyershop.sonstiges.Constants"%>
    2. <%@page import="flyershop.shop.ShopModul"%>
    3. <%@page import="flyershop.shop.CmdEditArtikel"%><form ACTION="<%=Constants.URL_BIN%>" METHOD="get">
    4. <%@page import="flyershop.shop.model.Artikel" %>
    5. <%@page import="flyershop.api.IErrorMessage"%>
    6. <%@page import="java.util.*"%>
    7. <jsp:includepage="messageSection.jsp" flush="true" />
    8. <input TYPE="hidden" NAME="module" VALUE="<%=ShopModul.NAME%>">
    9. <input TYPE="hidden" NAME="action" VALUE="<%=ShopModul.ACTION_EDIT_ARTIKEL%>">
    10. <table>
    11. <%
    12. CmdEditArtikel cmd = (CmdEditArtikel) request.getAttribute(CmdEditArtikel.NAME);
    13. %>
    14. <td>Auswahl des zu ändernden Artikels:</td>
    15. <td> <select name="<%=CmdEditArtikel.PARAM_ARTIKELNUMMER%>">
    16. <%
    17. for(Iterator<Artikel> iter = cmd.getArtikelnummer().listIterator(); iter.hasNext();) {
    18. Artikel artikelauswahl = iter.next();
    19. %>
    20. <option value="<%=artikelauswahl.getId()%>"<%if (cmd.getArtikel() != null && cmd.getArtikel().getArtikelnummer() != null && artikelauswahl.getId()==cmd.getArtikel().getArtikelnummer()) out.print(" selected"); %>><%=artikelauswahl.getArtikelnummer()%></option>
    21. <%}%>
    22. </select></td>
    23. <tr>
    24. <td colspan="2"><input TYPE="Submit" NAME="<%=CmdEditArtikel.PARAM_SUBMIT %>" VALUE="Speichern"></td>
    25. </tr>
    26. <tr>
    27. <td width="20%"><b>Artikelnummer</b></td>
    28. <td><b>Beschreibung</b></td>
    29. <td width="20%"><b>Preis</b></td>
    30. <td width="20%"><b>Untertitel</b></td>
    31. <td width="20%"><b>Produkttext</b></td>
    32. </tr>
    33. <% List<Artikel> artikel = cmd.getIArtikel();
    34. for(Iterator<Artikel> iter = artikel.iterator(); iter.hasNext();) {
    35. Artikel artikel1 = iter.next();
    36. %>
    37. <tr>
    38. <td><%=artikel1.getArtikelnummer()%></td>
    39. <td><%=artikel1.getBezeichnung()%></td>
    40. <td><%=artikel1.getPreis()%></td>
    41. <td><%=artikel1.getUntertitel()%></td>
    42. <td><%=artikel1.getProdukttext()%></td>
    43. <td><%=artikel1.getHersteller()%></td>
    44. <td><%=artikel1.getAnzahl()%></td>
    45. <td><%=artikel1.getRubrik1()%></td>
    46. <td><%=artikel1.getRubrik2()%></td>
    47. <td><%=artikel1.getArtikelstatus()%></td>
    48. </tr>
    49. <%}%>
    50. </table>
    51. </form>
    Alles anzeigen


    Hier der Auszug des Codes aus dem Command:

    Quellcode

    1. public class CmdEditArtikel extends AbstractCommand implements ICommand {
    2. public static final String NAME = "CmdShowArticle";
    3. private Artikel artikel = null;
    4. private List<Artikel> artikelauswahl = null;
    5. private List<Artikel> iArtikel = null;
    6. public static final String PARAM_ARTIKELNUMMER = "artikelnummer";
    7. public static final String PARAM_SUBMIT = "submit";
    8. public CmdEditArtikel(IModule pModule) {
    9. super(NAME, pModule);
    10. }
    11. /**
    12. * Die JSP-Seite auf die mit diesem Command umgeleitet wird.
    13. */
    14. public static final String JSP = "editArtikel.jsp";
    15. public String process(HttpServletRequest request,
    16. HttpServletResponse response) throws IOException, ServletException {
    17. artikelauswahl = Artikel.getArtikel(getSession());
    18. if(request.getParameter(PARAM_SUBMIT) != null){
    19. Session session = ((SessionFactory)request.getSession().getServletContext().getAttribute(Constants.KEY_SESSIONFACTORY)).openSession();
    20. Transaction tx = session.beginTransaction();
    21. iArtikel = session.createQuery("from Artikel a where a.artikelnummer = ? order by a.artikelnummer asc").setString(0, request.getParameter(PARAM_ARTIKELNUMMER)).list();
    22. tx.commit();
    23. }
    24. return JSP;
    25. }
    26. public Artikel getArtikel(){
    27. return artikel;
    28. }
    29. public List<Artikel> getArtikelnummer() {
    30. return artikelauswahl;
    31. }
    32. public List<Artikel> getIArtikel() {
    33. return iArtikel;
    34. }
    35. }
    Alles anzeigen



    Wird wahrscheinlich mal wieder etwas ganz banales sein, aber ich komme einfach nicht dahinter, woran das liegt...

    Hoffe, ihr könnt mir weiterhelfen...
  • ja, das sieht ganz danach aus, als ob artikelauswahl.getId() null als Rückgabewert gibt.
    Zur Visualisierung:

    Quellcode

    1. <%
    2. for(Iterator<Artikel> iter = cmd.getArtikelnummer().listIterator(); iter.hasNext();) {
    3. Artikel artikelauswahl = iter.next();
    4. %>
    5. <option value="<%=artikelauswahl.getId()%>"<%if (cmd.getArtikel() != null && cmd.getArtikel().getArtikelnummer() != null && artikelauswahl.getId()==cmd.getArtikel().getArtikelnummer()) out.print(" selected"); %>><%=artikelauswahl.getArtikelnummer()%> (value=<%=artikelauswahl.getId()%>)</option>
    6. <%}%>