Cómo implementar la configuración de internacionalización de Spring MVC
"/gt;
2. Configuración de internacionalización basada en carga dinámica 1. Configuración de internacionalización basada en solicitudes La configuración de internacionalización basada en solicitudes significa que en la solicitud actual, la configuración de internacionalización entra en vigor; de lo contrario, el navegador se utiliza automáticamente. La configuración es la siguiente: Primero configure el interceptor. La siguiente es una referencia: esta configuración. independientemente de si se trata de internacionalización a nivel de solicitud, internacionalización a nivel de cookies o internacionalización a nivel de sesión, el interceptor debe configurarse; de lo contrario, no se utilizará. Después de hacer coincidir el interceptor anterior, el interceptor se inyectará en su UrlHandlerMapping, por. ejemplo: La siguiente es la referencia del código XML: 1 En este momento, cualquier solicitud que cumpla con la solicitud de UrlMapping será interceptada y se configurarán los parámetros de internacionalización: los parámetros predeterminados se denominan caso de idea local. llamada configuración regional, como: en_US, zh_CN, etc. En este momento, agrega una oración de chino simplificado en la página. Si sus recursos están llenos de configuraciones de chino recomendadas, se convertirá en la configuración de chino simplificado que usted determinó. Configuración de internacionalización basada en sesión Interceptor y basada en La configuración de la solicitud es la misma, y la configuración de la sesión es la siguiente: La siguiente es una referencia: en su controlador de procesamiento, genere un objeto de configuración regional real a partir de la información del campo de configuración regional enviada. y luego guarde el objeto en Sesión. El ID guardado predeterminado es SessionLocaleResolver .LOCALE_SESSION_ATTRIBUTE_NAME De esta manera, cuando su sesión no haya expirado, el tipo de configuración regional siempre será correcto, por ejemplo, he estado usando este método y creo que así es. Es mejor usar sesiones. 3. Basado en la internacionalización. No entraré en detalles sobre la configuración de cookies. De todos modos, no lo uso mucho. Al menos los proyectos que no uso no pueden usar cookies. No entraré en detalles sobre la configuración de cookies basada en la internacionalización. Si desea saber cómo configurarla, descargue un Spring, que contiene ejemplos de programas para configurar la configuración de cookies. En tercer lugar, debería ser. Tenga en cuenta que si no utiliza la internacionalización del idioma del navegador predeterminado, debe configurar el interceptor. Si tiene varios UrlMappings, cada uno debe usar un interceptor. En cuanto al nombre de LocaleResolver configurado, asegúrese de usar el nombre localeResolver en lo anterior. configuración Por supuesto, este es el nombre predeterminado. También puede configurarlo con otro nombre, pero de todos modos es problemático, siento que puedo resolver el problema usando el predeterminado: cité "Configuración de internacionalización de Spring MVC I18N". Hace unos días hice una prueba y encontré un problema.
El programa generará una excepción "No se puede cambiar el encabezado de aceptación HTTP; use una estrategia de resolución de configuración regional diferente". La razón fundamental es que el código fuente de Spring tiene restricciones. El siguiente código Java es un fragmento citado: público. class AcceptHeaderLocaleResolver implementa LocaleResolver {locale pública resolveLocale (solicitud HttpServletRequest) { return request.getLocale();} public void setLocale(solicitud HttpServletRequest, respuesta HttpServletResponse, configuración regional) { throw new UnsupportedOperationException ("No se puede cambiar el encabezado de aceptación HTTP; use una configuración regional diferente) estrategia de resolución"); } }. }HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.DispatcherServlet; import org.} Luego, la configuración en action-servlet.xml es código XML, el El siguiente es el fragmento citado: Chinese.do =filenameController us.do=filenameController