Frage

Ok, ich habe ausgegeben drei sieben Stunden googeln und testen und ich gebe auf, ich muss um Hilfe bitten. Früher habe ich unter Linux entwickelt und alles war einfach, jetzt benutze ich Windows und so einfache Dinge wie das Einstellen des richtigen Gebietsschemas funktionieren nicht.

Ich habe eine einfache JSP mit Formular erstellt:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<form action="save-user" method="post">
    Name: <input type="text" name="name"><br>
    Email: <input type="text" name="email"><br>
    <input type="submit" value="Save">
</form>

Und Servlets:

    String name = request.getParameter("name");
    String email = request.getParameter("email");

Ich erhalte LeoÅ¡ anstelle von Leoš.Ich benutze WildFly 8.0RC1, Windows 8 tschechisch, Firefox.

Was ich schon ausprobiert habe:

  1. Anfrage.setCharacterEncoding("UTF-8");vor dem Lesen zuerst Parameter
  2. Filter mit Anfrage.setCharacterEncoding("UTF-8");
  3. JVM-Eigenschaft -Ddatei.kodierung=UTF-8
  4. Entfernen Sie Standard-JEE-Stapelgläser aus dem Krieg
  5. Kriegsverpackung reparieren
  6. Projekt in WEB- und EJB-Modul aufteilen

Wenn JPA-Entität / DAO bereitgestellt wird, werden diakritische Zeichen verstümmelt.Wenn ich eine Entität aus dem Servlet auskommentiere und eine JPA-Entität aus dem Krieg entferne (derzeit entferne ich OAuthLoginEJB.jar von WEB-INF / lib), dann erhalte ich die korrekte Codierung.Wenn ich diesen EJB wieder hinzufüge, schlägt er erneut fehl.Ist es ein JBoss / WildFly-Fehler?

Ich kann vollständige Quellen bereitstellen: https://drive.google.com/file/d/0B-adlc5KThQDWTdYOEwxOUpTVEU/edit?usp=sharing Es ist betriebsbereit, Sie müssen nicht einmal tschechische Buchstaben eingeben, da diese bereits ausgefüllt sind.Danke

War es hilfreich?

Lösung

Marko von Wildfly Dev Mailingliste hat auf diesen Mangel gerichtet: https://issues.jboss.org / browse / cdi-411 und diese Problemumgehung: http://weld.cdi-spec.org/documentation/#3

Wenn ich mein Web.xml geändert habe, begann es zu arbeiten:

generasacodicetagpre.

Andere Tipps

Sie müssen anrufen request.setCharacterEncoding("UTF-8") vor dem ersten Lesen aus dem Request InputStream.Parameter können vom Filter gelesen werden, bevor Sie die Codierung in Ihrem Servlet festlegen.Vielleicht ist da ein Filter drin OAuthLoginEJB.jar oder in einer anderen Abhängigkeit, die zuerst Parameter liest?In der Regel ist dies ein Parameter zum Debuggen...Mit der Servlet-API 3.0 können Servlets und Filter durch Anmerkungen registriert werden, sodass einige Filter trotz leer registriert werden können web.xml.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top