cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "BRAUD Denis" <DBR...@micropole-univers.com>
Subject form-encoding
Date Mon, 07 Nov 2005 17:52:50 GMT
Bonjour,

J'ai vu avec Cocoon que l'on peut positionner un form-encoding par défaut (web.xml : <param-name>form-encoding</param-name>).
Ce paramètre sert à initialiser la request (cf. CocoonServlet.getEnvironment : this.defaultFormEncoding).

Je rencontre des cas où cette définition par défaut n'est pas suffisante car je ne peux
pas définir un form-encoding valable pour tous les terminaux qui utilisent ma webapp.

Pourquoi ne pas utiliser sur CocoonServlet.getEnvironment, le Http Header Accept-Charset pour
déterminer le form-encoding (cf. méthode getFormEncoding ci après) ?

Denis

---------------------------------------------------------------
getFormEncoding

acceptCharset : récupéré via request.getHeader("Accept-Charset")
  Ce champs a 2 formes :
  -utf-8, utf-16, iso-8859-1, *
  -utf-8;q=1.0, utf-16;q=0.5, iso-8859-1, *

containerSupportedEncodings : Liste des encodings supportés par le container
  Pourrait venir de web.xml :
  <init-param>
    <param-name>container-supported-encodings</param-name>
    <param-value>utf-8,iso-8859-1</param-value>
  </init-param>

public static String getFormEncoding(
    String acceptCharset,
    List containerSupportedEncodings,
    String defaultFormEncoding) {
    if (containerSupportedEncodings == null || acceptCharset == null) {
        return defaultFormEncoding;
    }
    String formEncoding = null;
    String[] formEncodings = org.apache.commons.lang.StringUtils.split(
        acceptCharset, ",");
    for (int i = 0; i < formEncodings.length; i++) {
        formEncoding = formEncodings[i];
        int commaPos = formEncoding.indexOf(';');
        if (commaPos != -1) {
            formEncoding = formEncoding.substring(0, commaPos);
        }
        formEncoding = formEncoding.trim().toLowerCase();
        if (containerSupportedEncodings.contains(formEncoding)) {
            return formEncoding;
        }
    }
    return defaultFormEncoding;
}

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message