Wicket 6 - Erfassen von HttpServletRequest-Parametern in mehrteiliger Form?

nter Verwendung von Wicket 6.17 und Servlet 2.5 habe ich ein Formular, das das Hochladen von Dateien ermöglicht, und ReCaptcha (mit Recaptcha4j). Wenn das Formular ReCaptcha ohne Dateiupload enthält, funktioniert es ordnungsgemäß mit dem Code:

    final HttpServletRequest servletRequest = (HttpServletRequest ) ((WebRequest) getRequest()).getContainerRequest();
    final String remoteAddress = servletRequest.getRemoteAddr();
    final String challengeField = servletRequest.getParameter("recaptcha_challenge_field");
    final String responseField = servletRequest.getParameter("recaptcha_response_field");

, um die Challenge- und Response-Felder abzurufen, damit sie validiert werden können.

Dies funktioniert nicht, wenn für das Formular die Datei hochgeladen wurde, da das Formular mehrteilig sein muss, damit der Upload funktioniert. Wenn ich also versuche, die Parameter auf diese Weise abzurufen, schlägt dies fehl.

Ich habe versucht, die Parameter mit ServletFileUpload anders abzurufen:

    ServletFileUpload fileUpload = new ServletFileUpload(new DiskFileItemFactory(new FileCleaner()) );
    String response = IOUtils.toString(servletRequest.getInputStream());

un

    ServletFileUpload fileUpload = new ServletFileUpload(new DiskFileItemFactory(new FileCleaner()) );
    List<FileItem> requests = fileUpload.parseRequest(servletRequest);

both von denen immer leer zurück.

Mit der Netzwerkkonsole von Chrome werden die gesuchten Werte in der Anforderungsnutzlast angezeigt, sodass ich weiß, dass sie sich irgendwo dort befinden.

eder Hinweis, warum die Anfragen leer ausgehen und wie man sie findet, wäre sehr willkomme

Update: Ich habe auch versucht, die ReCaptcha-Komponente mehrteilig zu gestalten und den Datei-Upload weggelassen. Das Ergebnis ist immer noch das gleiche, dass die Antwort leer ist, so dass ich die ursprüngliche Schlussfolgerung gezogen habe, dass die Übermittlung von mehrteiligen Formularen das Problem darstellt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage