rwe aus Hamburg
Grünschnabel
Hallo
ich bin ein relativer Neuling im Bereich von JSF und XHTML habe aber bereits einige Erfahrung mit Java (einige Jahre). Umso mehr hat mich verwundert, dass ich mit meiner Testanwendung Probleme mit den deutschen umlauten habe.
Beispiel:
Eingabe meiner Daten
Und die Ausgabe in einer anderen View
ich habe folgende Schritte bereits (ohne Erfolg) versucht:
web.xml
Die passende JavaKlasse UTF8Filter sieht so aus:
in meinem template.xhtml
Der Quellcode zur Eingabe der Daten sieht folgendermaßen aus:
((Unnützen Kommentarschleim habe ich entfernt!))
Die Daten werden bereits an die Validatoren und Convertern falsch übergeben.
Wie erreiche ich, dass meine Daten richtig in meine Java Umgebung weitergereicht werden?
Ich danke für Deine Unterstützung!
(Umgebung Java 7; GlassFish Open Source Edition 4.0)
ich bin ein relativer Neuling im Bereich von JSF und XHTML habe aber bereits einige Erfahrung mit Java (einige Jahre). Umso mehr hat mich verwundert, dass ich mit meiner Testanwendung Probleme mit den deutschen umlauten habe.
Beispiel:
Eingabe meiner Daten
Und die Ausgabe in einer anderen View
ich habe folgende Schritte bereits (ohne Erfolg) versucht:
web.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
<filter>
<filter-name>UTF8Filter</filter-name>
<filter-class>de.hamburg.faces.UTF8Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>UTF8Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Die passende JavaKlasse UTF8Filter sieht so aus:
Code:
package de.hamburg.faces;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class UTF8Filter implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
in meinem template.xhtml
HTML:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<f:view contentType="text/html" encoding="UTF-8"/>
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>#{headline}</title>
<!-- more code here - for the template include sections -->
</h:head>
<h:body>
</h:body>
</html>
Der Quellcode zur Eingabe der Daten sieht folgendermaßen aus:
HTML:
<h:outputLabel for="person_salutation" value="#{bundle.person_salutation}:" class="tbl_label"/>
<h:panelGroup id="person_salutation_current" class="tbl_input">
<h:selectBooleanCheckbox id="person_salutation" value="#{personController.selected.female}">
<f:ajax event="click" render="person_salutation_current"/>
</h:selectBooleanCheckbox>
<h:outputLabel value="#{bundle.person_salutation_female}" rendered="#{true == personController.selected.female}"/>
<h:outputLabel value="#{bundle.person_salutation_male}" rendered="#{false == personController.selected.female}"/>
<h:outputLabel value="#{bundle.person_salutation_undefined}" rendered="#{null == personController.selected.female}"/>
</h:panelGroup>
<h:outputLabel for="firstname" value="#{bundle.person_firstname}:" class="tbl_label"/>
<h:inputText id="firstname" value="#{personController.selected.vorname}" converter="tt.StringConverter" class="tbl_input">
<f:attribute name="code" value="UTF8"/>
</h:inputText>
<h:outputLabel for="lastname" value="#{bundle.person_lastname}:" class="tbl_label"/>
<h:inputText id="lastname" value="#{personController.selected.nachname}" converter="tt.StringConverter" class="tbl_input">
<f:attribute name="code" value="UTF8"/>
</h:inputText>
((Unnützen Kommentarschleim habe ich entfernt!))
Die Daten werden bereits an die Validatoren und Convertern falsch übergeben.
Wie erreiche ich, dass meine Daten richtig in meine Java Umgebung weitergereicht werden?
Ich danke für Deine Unterstützung!
(Umgebung Java 7; GlassFish Open Source Edition 4.0)
Zuletzt bearbeitet von einem Moderator: