Quelle est la meilleure façon la meilleure et plus portable d'obtenir le local fort> client strong> dans le contexte d'une demande de jersey (Jax-RS)? J'ai le code suivant: Veuillez supposer que la "demande" est faite par certains code JavaScript dans un navigateur, en appelant window.location = ...; code > p> p>
5 Réponses :
locale locale = demande.getlocale (); code> p>
Le client doit définir le Accepter-langue code> en-tête a>. p>
Cela est supposé être vrai. En fait, ma question était un peu faux, la réponse est directe: étant donné le httpservletQuest code> C'est juste une question d'appel
getLocale () code> ...
Utilisez l'en-tête HTTP pour cela. Pour demander la valeur numérique dans la Decimal locale américaine, vous pouvez demander comme celui-ci:
à partir du code: p>
Obtenir / métrique / 007 / Taille
Langue d'acceptation: en-nous
code> p>
Les données de langue / locale peuvent être effectuées de différentes manières en fonction de l'objectif final. Selon la question, je crois que la solution la plus appropriée est la suivante: Une autre alternative potentielle utilise un paramètre de requête de langue: p> ou Alternativement, le paramètre "Accepter-Language": P> @GET
public Response myRequest( @HeaderParam( "Accept-Language" ) String acceptLanguage )
{
...
}
AS UTILISE3774109 Réponse, utilisez l'en-tête HTTP CODE> HTTP-LANGUE. Bien qu'il soit utilisé dans la mise en œuvre de Jersey, l'interface javax.servlet.http.httpservlettrequest code> ne fait pas partie de l'API JAX-RS. Un moyen plus propre d'obtenir la langue acceptée préférée serait:
@GET
@Produces("text/html")
@Path("/myrequest")
public Response myRequest(@Context HttpHeaders headers) {
Locale locale = headers.getAcceptableLanguages().get(0);
...
}
Pouvez-vous décrire plus sur le problème?