linux服务器wordpress建站教程视频,国内推广平台,中国住房和城乡建设部网站官网,代码html我最近想将Spring 3提供的国际化和本地化功能添加到我当前的项目之一中。 我浏览了Spring文档#xff0c;然后在Internet上搜索以找到一些资源。 但是我找不到能够满足客户要求的资源。 大多数教程都像hello world应用程序#xff0c;它提供了基本的理解。 即使是spring文档然后在Internet上搜索以找到一些资源。 但是我找不到能够满足客户要求的资源。 大多数教程都像hello world应用程序它提供了基本的理解。 即使是spring文档也没有提供有关将此功能集成到我们自己的项目中的详细说明。 专业的开发人员可以从spring文档中挑选东西。 但是对于其他人则必须付出额外的努力来使事情正常运行。 通过本教程我将解释大多数客户期望的非常实际的情况。 要求 我在我的应用程序中使用Spring Security。 用户应该能够从登录页面中选择语言该页面被指定为spring security XML文件的“登录页面”。 我在登录页面的右上角提供了“英语”“中文”“德语”和“西班牙语”链接以选择语言。 用户可以选择语言并通过提供用户名和密码来登录系统。 然后整个应用程序应来自所选语言。 同样从登录页面选择语言时登录页面的内容也应更改。 弹簧配置 第一步我必须在dispatcher-servlet.xml中配置LocaleChangeInterceptor拦截器 文件。 此XML文件名将根据web.xml文件中分配给DispatcherServlet的名称进行更改。 我已将“ dispatcher”作为DispatcherServlet的名称。 所以我应该在/ WEB-INF文件夹下创建 dispatcher-servlet.xml 文件。 我的应用程序正在Tomcat 7上运行。 我不能像在Spring文档中那样通过声明此拦截器的方法来使其工作。 登录之前更改语言环境的请求即从登录页面开始未被语言环境更改拦截器拦截。 因此我不得不宣布它为休假。 mvc:interceptorsmvc:interceptormvc:mapping path/doChangeLocale*/bean classorg.springframework.web.servlet.i18n.LocaleChangeInterceptor property nameparamName valuelocale //bean/mvc:interceptor
/mvc:interceptors “ LocaleChangeInterceptor ”将拦截请求更改语言环境的请求并借助“ SessionLocaleResolver ”将相应的语言环境代码存储在会话中。 接下来我们将研究如何在“ dispatcher-servlet.xml”文件中声明“ SessionLocaleResolver”。 bean idlocaleResolver classorg.springframework.web.servlet.i18n.SessionLocaleResolverproperty namedefaultLocale valueen /
/bean SessionLocaleResolver将在当前会话中存储区域设置并针对当前会话的每个后续用户请求解析该区域设置。 接下来我们必须声明消息资源bean。 bean idmessageSource classorg.springframework.context.support.ReloadableResourceBundleMessageSourceproperty nameuseCodeAsDefaultMessage valuetrue /property namebasenameslistvalueclasspath:messages/value/list/propertyproperty namecacheSeconds value0 /property namedefaultEncoding valueUTF-8/property
/bean 我的应用程序应支持4种语言。 因此我将4个属性文件添加到“ resources”文件夹中最终所有这些属性文件应位于“ classs”文件夹中如下所示。 messages_de.properties –德语 messages_en.properties –英文 messages_zh.properties –中文 messages_es.properties –西班牙语 注意所有文件名都应以您指定为消息资源bean的basenames属性的文本开头。 Spring 3安全配置在此实现中非常重要。 请记住当您单击登录页面上的任何区域更改链接时您尚未通过身份验证。 但是该请求仍应由“ LocaleChangeInterceptor”拦截。 否则语言将不会按预期更改。 因此应该允许任何匿名用户发出区域更改请求并且该请求应通过“ LocaleChangeInterceptor”。 仔细研究我的spring安全配置。 http auto-configfalseform-login login-page/login.jsp authentication-failure-url/login.jsp?login_errortrue default-target-url/mainMenu.htm/logout logout-success-url/login.jsp/intercept-url pattern/doChangeLocale** accessROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER/intercept-url pattern/** accessROLE_ADMIN,ROLE_USER /
/http 用户可以通过login.jsp文件提供用户名和密码来登录系统并且该页面具有用于更改语言环境的相应链接。 当用户未经身份验证而对受保护资源提出任何请求时该用户将被重定向到login.jsp页面。 上面的配置说所有传入应用程序的请求都应来自经过身份验证的用户并且除了“ / doChangeLocale **”请求外还应授权该用户。 拦截URL/ doChangeLocale **非常重要。 否则语言环境更改拦截器将不会拦截更改语言环境的请求并且最终语言环境也将不会更改。 以下是放置在login.jsp文件中的语言环境更改链接。 a href%request.getContextPath()%/doChangeLocale?localeenEnglish/a
a href%request.getContextPath()%/doChangeLocale?localedeGerman/a
a href%request.getContextPath()%/doChangeLocale?localeesSpanish/a
a href%request.getContextPath()%/doChangeLocale?localezhChinese/a 希望这对您有帮助。 参考 Spring3国际化和本地化–并非来自“ Hello World”而是来自JCG合作伙伴 Semika loku kaluge来自Code Box博客的“实用” 。 翻译自: https://www.javacodegeeks.com/2012/07/spring-3-internationalization-and.html