Comment accéder à Locale depuis un JSP?
Je veux inclure un fichier js en fonction de la valeur des paramètres Régionaux en cours. J'ai essayé d'y accéder à partir de JSP comme suit:
<%@ page import="java.util.Locale" %>
<% if( ((Locale) pageContext.getAttribute("org.apache.struts.action.LOCALE",PageContext.REQUEST_SCOPE)).getLanguage().equals("de")) { %>
<script src="../themes/administration/js/languages/i18nDE.js" type="text/javascript"> </script>
<% } else { %>
<script src="../themes/administration/js/languages/i18nEN.js" type="text/javascript"> </script>
<% } %>
Cependant, je suis un java.lang.NullPointerException
parce que pageContext.getAttribute("org.apache.struts.action.LOCALE",PageContext.REQUEST_SCOPE)
est NULL
.
Personne ne sait comment je peux résoudre ce problème?
source d'informationauteur Sergio del Amo
Vous devez vous connecter pour publier un commentaire.
En ce moment je suis en utilisant ceci :
Cela peut être plus tard l'accès à l'aide
${localeCode}
La
localeCode
variable peut être interrogé à l'intérieur d'un scriptlet avec:Je suis à l'aide de spring 2.5 config pour le moment.
Faire à la suite de cela, pour en revenir à votre question initiale, vous pouvez mettre en place quelque chose comme:
ou si vous voulez vraiment utiliser certains de code court pour impressionner vos collègues, vous pouvez le faire:
dans Struts2 essayer
Struts met locale dans la session. La bonne façon d'obtenir les paramètres Régionaux sont:
Je ne peux pas trouver une constante
org.apache.struts.action.LOCALE
dans les jambes de force 1.x documentation - devrait-il êtreorg.apache.jambes de force.Globals.LOCALE_KEY
? Ou l'une de l'autreLOCALE_KEY
constantes?Edit:
org.apache.struts.action.LOCALE
est le valeur de laorg.apache.struts.Global.LOCALE_KEY
- de sorte que la valeur elle-même, utilisée comme une clé, ne devrait pas être le problème.Vérifier qu'un
LOCALE
est situé dans leRequest
. Ma compréhension est que leLOCALE_KEY
est situé dansPageContext.SESSION_SCOPE
si elle est définie.Dans Struts2, à l'aide de EL j'ai utilisé avec succès:
E. g. à la sortie de la valeur de ces paramètres Régionaux:
J'ai ajouté de nouveaux exemples pour clarifier ce un peu plus parce que ce post ne m'aide pas beaucoup.
Pour obtenir les paramètres régionaux de jsp:
c'est un ServletRequest Méthode Renvoie le lieu préféré que le client accepte le contenu, basé sur l'-tête Accept-Language,
Renvoie les paramètres régionaux pour la Struts2-Cadre, qui peut ou peut ne pas être la même que dans l'exemple précédent. si vous passez le paramètre request_locale=de par exemple...
la struts2 #demande.paramètres régionaux sera changé à l'allemand, en substituant la valeur de l'original en-tête Accept-Language
Essayez avec cette
Ken G. a souligné la réponse.
doit être utilisé au lieu
Les deux meilleures façons d'obtenir
locale
est à l'aide de lagetLocale
de l'Action de soutien héritées par une action, sur une JSP:<s:hidden name="locale"/>
ou<s:property value"%{locale}"/>
Lorsque les paramètres régionaux a été changé avec cette méthode.
Ce n'est pas la même chose que:
${pageContext.response.locale}