『壹』 如何實現Spring MVC國際化的設置
一、基於瀏覽器語言的國際化配置 使用Spring的MVC,並且配置中有配置Resource文件 Xml代碼 以下是引用片段: 其中,message-info是你的properties文件的通用名。如:我的配置文件叫 message-info.properties,message-info_zh_CN.properties等等,只要有了這個配置,然後配置JSP 渲染器為JSTL支持的,那麼在你的JSP文件中使用fmt標記就可以實現客戶瀏覽器語言國際化了。 如: 以下是引用片段: 其中的info.login.title和你的資源文件對應. 另外一種方式是使用spring自帶的標簽顯示國際化信息,如: 以下是引用片段:
"/>
二、基於動態載入的國際化配置 1、基於請求的國際化配置 基於請求的國際化配置是指,在當前請求內,國際化配置生效,否則自動以瀏覽器為主。 配置方式如下: 首先配置攔截器 以下是引用片段: 這個配置呢,是不論請求級別的國際化,還是Cookie級別的國際化,再或者Session級別的國際化,都必需有配置這個攔截器,否則會不能使用。 配好上面的攔截器之後,就將攔截器注入到你的UrlHandlerMapping中,例如: Xml代碼 以下是引用片段: 1 這個時候,但凡有了符合UrlMapping的請求,就會被攔截,並且開始配置國際化參數 以下是引用片段: 默認的參數名為locale主意大小寫。裡面放的就是你的提交參數。如:en_US,zh_CN之類的,這個時候,你在頁面上加一句簡體中文 如果你的資源中,飽含建議中文的配置,那麼就會變成你確定的簡體中文拉。 2、基於Session的國際化配置 攔截器和基於請求的相同 Session的配置如下: 以下是引用片段: 在你的處理的Controller中,將提交上來的locale欄位信息生成真正的Locale對象,然後將對象保存在Session中,默認保存的ID是SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME 這樣,當你的Session不過期,那麼語言種類始終保持正確的說。我一直是這樣子用的,我覺得還是Session的好,老外們用了很滿意。 3、基於Cookie的國際化配置 這個我就不說了,反正用的不多,至少我做的項目能不用Cookie就不用Cookie,所以,基於Cookie的國際化配置我就不細說了,如果想知道怎麼配置,那麼下載一個Spring,其中的例子程序就是用Cookie配置的,你自己讀代碼就OK了。 三、注意事項 如果不用默認的瀏覽器語言國際化方式,那麼攔截器一定要配置,如果你有多個UrlMapping,那麼就每個都配上攔截器。 至於配置的LocaleResolver的名字,一定要用上面的配置中的名字localeResolver當然了,這個是默認的名字來的,自己設置成別的也可以,但是就是麻煩,反正我用默認的就感覺不錯 解決問題: 在前幾天引用「Spring的MVC I18N-國際化相關配置 」並做了測試,發現 有一問題。程序運行會拋出異常 「Cannot change HTTP accept header - use a different locale resolution strategy」,根本原因是spring source 做了限制,源碼如下 java代碼 以下是引用片段: public class AcceptHeaderLocaleResolver implements LocaleResolver { public Locale resolveLocale(HttpServletRequest request) { return request.getLocale(); } public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { throw new UnsupportedOperationException( "Cannot change HTTP accept header - use a different locale resolution strategy"); } } 請注意上面的類,該類允許繼承,所以需要改寫setLocale方法,源碼示範如下 Java代碼 以下是引用片段: package org.springframework.web.servlet.i18n; import java.util.Locale; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.DispatcherServlet; import org.springframework.web.servlet.LocaleResolver; public class MyAcceptHeaderLocaleResolver extends AcceptHeaderLocaleResolver { private Locale myLocal; public Locale resolveLocale(HttpServletRequest request) { return myLocal; } public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { myLocal = locale; } } 然後在action-servlet.xml里的設置為 Xml代碼 以下是引用片段: chinese.do=filenameController us.do=filenameController
『貳』 Spring框架有哪幾部分組成
Spring框架有七個模塊組成組成,這7個模塊(或組件)均可以單獨存在,也可以與其它一個或多個模塊聯合使用,主要功能表現如下:
?? Spring 核心容器(Core):
提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,她是工廠模式的實現。BeanFactory使用控制反轉(Ioc)模式將應用程序的配置和依賴性規范與實際的應用代碼程序分開。
?? Spring AOP:
通過配置管理特性,Spring AOP模塊直接面向方面的編程功能集成到了Spring框架中,所以可以很容易的使Spring框架管理的任何對象支持 AOP。Spring AOP模塊為基於Spring的應用程序中的對象提供了事務管理服務。通過使用Spring AOP,不用依賴於EJB組件,就可以將聲明性事務管理集成到應用程序中。
?? Spring ORM:
Spring框架集成了若干ORM框架,從而提供了ORM的對象關系工具,其中包括 JDO、Hibernate、iBatis和TopLink。所有這些都遵從Spring的通用事務和DAO異常層結構。
?? Spring DAO:
JDBC DAO抽象層提供了有意義的異常層次的結構,可用該結構來管理異常處理和不同數據供應商拋出的異常錯誤信息。異常層次結構簡化了錯誤處理,並且大大的降低 了需要編寫的異常代碼數量(例如,打開和關系連接)。Spring DAO的面向JDBC的異常遵從通用的DAO異常層結構。
?? Spring WEB:
Web上下文模塊建立在上下文模塊(Context)的基礎之上,為基於Web服務的應用程序提供了上下文的服務。所以Spring框架支持 Jakarta Struts的集成。Web模塊還簡化了處理多部分請求及將請求參數綁定到域對象的工作。
?? Spring上下文(Context):
Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化校驗和調度功能。
Spring的MVC框架是一個全功能的構建Web應用程序的MVC實現。通過策略介面,MVC框架變成為高度可配置的,MVC容納的大量視圖技術,包括JSP、Velocity、Tiles、iText和Pol
『叄』 spring mvc怎麼配置國際化
基於瀏覽器語言的國際化配置 使用Spring的MVC,並且配置中有配置Resource文件 Xml代碼
『肆』 struts框架 和spring框架都是做什麼用的
Struts是Apache軟體組織提供的一項開放源碼項目,它為Java Web應用提供了模型-視圖-控制器(Model-View- Controller,簡稱MVC)框架,尤其適用於開發大型可擴展的Web應用。Struts這個名字來源於在建築和舊式飛機中使用的支持金屬架。 Struts為Web 應用提供了一個通用的框架,使得開發人員可以把精力集中在如何解決實際業務問題上。此外, Struts 框架提供了許多供擴展和定製的地方,應用程序可以方便的擴展框架,來更好的適應用戶的實際需求。
Spring 框架是一個分層架構,由 7 個定義良好的模塊組成。Spring 模塊構建在核心容器之上,核心容器定義了創建、配置和管理 bean 的方式,如圖 1 所示。
組成 Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯合實現。每個模塊的功能如下:
核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉 (IOC) 模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。
Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。
Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持 AOP。Spring AOP 模塊為基於 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中。
Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常代碼數量(例如打開和關閉連接)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。
Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。
Spring Web 模塊:Web 上下文模塊建立在應用程序上下文模塊之上,為基於 Web 的應用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數綁定到域對象的工作。
Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。通過策略介面,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。
Spring 框架的功能可以用在任何 J2EE 伺服器中,大多數功能也適用於不受管理的環境。Spring 的核心要點是:支持不綁定到特定 J2EE 服務的可重用業務和數據訪問對象。毫無疑問,這樣的對象可以在不同 J2EE 環境 (Web 或 EJB)、獨立應用程序、測試環境之間重用。
『伍』 Spring的MVC國際化,動態設置默認語言如何實現
以使用spring的國抄際化為例
使用哪襲種語言,是以session中的SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME值為准;
具體代碼為:
request.getSession().setAttribute(
SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale);
locale就是語言代碼,比如中文簡體就是zh_cn
你只需要在後台更改語言的時候,修改session中的值就可以了,是立即生效的,記得先做好對應的國際化文件;