2014-05-20 9 views
7

Seguo il corso Spring mvc in Pluralsight e ho "Impossibile modificare l'intestazione di accettazione HTTP - utilizza una strategia di risoluzione delle impostazioni internazionali diversa" questo errore durante l'esecuzione dell'applicazione. Prima di questo, ho aggiunto i fagioli theese al servlet-config.xmlImpossibile modificare l'intestazione di accettazione HTTP: utilizzare una diversa strategia di risoluzione locale

<mvc:interceptors> 
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" p:paramName="language" /> 
</mvc:interceptors>   

<bean id="localResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" p:defaultLocale="en" /> 

In cartella delle risorse Ho due file. messages_es.properties e messages.properties. Uno ha goal.text=Minutos Ejercicio para el día de hoy: e altri goal.text=Minutes Exercise For The Day Today: Quindi l'obiettivo è scegliere la lingua.

E nel file JSP Ho questa linea su di esso

Language : <a href="?language=en">English</a> | <a href="?language=es">Spanish </a>

Così come posso farlo funzionare correttamente?

+0

Stai usando 'AcceptHeaderLocaleResolver' come bene per risolvere la localizzazione dall'intestazione 'Accept'. Non ti permetterà di cambiare la locale attraverso i parametri di richiesta. – Bart

+3

L'ID bean è errato, dovrebbe essere 'localeResolver', quindi Spring sta registrando l'AcceptHeaderLocaleResolver predefinito. – Jukka

+1

@Jukka Grazie mille! Funziona ok adesso :) – vladdihoney

risposta

15

cambiare l'ID di fagioli da "localResolver" a "localeResolver"

+0

Sì, grazie, questa soluzione funziona ed è stata citata in commento sotto la mia domanda. – vladdihoney

+0

Ha risolto anche il mio problema! Molte grazie! – user1321759

1

ho risolto questo problema nominando il metodo come localeResolver utilizzando la soluzione fornita qui Spring 4 i18n & l10n (Cannot change HTTP accept header)

@Bean 
public LocaleResolver localeResolver() 
{ 
    final SessionLocaleResolver localeResolver = new SessionLocaleResolver(); 
    localeResolver.setDefaultLocale(new Locale("en", "US")); 
    return localeResolver; 
}