Spring MVC 2.5中的I18N无法正常运行拦截器而没有任何错误 [英] i18n in spring mvc 2.5 unable to work interceptor without any error
问题描述
大家好,
我是春季mvc 2.5框架的新手,我想在自己的Web应用程序中发展国际化.
请帮助我
在此先感谢
========= web.xml =========
< web>
< servlet>
< servlet-name>上下文</servlet-name>
< servlet-class> org.springframework.web.context.ContextLoaderServlet</servlet-class>
<启动时加载> 1</启动时加载>
</servlet>
< servlet>
< servlet名称>调度程序</servlet名称>
< servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
<启动时加载> 1</启动时加载>
</servlet>
< servlet-mapping>
< servlet名称>调度程序</servlet名称>
< url-pattern> *.htm</url-pattern>
</servlet-mapping>
</web>
//dispatcher-servlet.xml//
< bean id ="beanValidator" class ="org.springmodules.validation.commons.DefaultBeanValidator" p:validatorFactory-ref ="validatorFactory"/>
< bean id ="validatorFactory" class ="org.springmodules.validation.commons.DefaultValidatorFactory">
<属性名称="validationConfigLocations">
< list>
<值>/WEB-INF/validator-rules.xml</值>
< value>/WEB-INF/validation.xml</value>
</list>
</property>
</bean>
< bean id ="urlMapping" class ="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
<属性名称=拦截器">
< list>
< ref bean ="localeChangeInterceptor"/>
</list>
</property>
<属性名称="order"值="1"/>
</bean>
< bean id ="localeChangeInterceptor" class ="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<属性名称="paramName"值="lang"/>
</bean>
< bean id ="localeResolver" class ="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<属性名称="cookieMaxAge">
< value> 3600</value>
</property>
<属性名称="defaultLocale" value ="zh-CN"/>
</bean>
< bean id ="messageSource" class ="org.springframework.context.support.ResourceBundleMessageSource" p:basename ="messages"/>
< bean name ="/Login.htm" class ="controller.LoginController" p:sessionForm ="true" p:commandName ="loginCommand"
p:commandClass ="bean.LoginCommand" p:formView ="Login" p:validator-ref ="beanValidator"/>
//jsp文件///
</b>< a href =?lang = en_US">英语</a>< b>
用户名-文本框
密码-文本框
提交按钮
Login.jsp名称
请给我建议,但是当我单击提交"时,会有一些验证,这些验证显示来自messages.properties文件的消息
在此先感谢
Hi all,
I am new in spring mvc 2.5 framework, I want to develop internationalization in my web application.
please help me
thanks in advance
=========web.xml=========
<web>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
</web>
// dispatcher-servlet.xml //
<bean id="beanValidator" class="org.springmodules.validation.commons.DefaultBeanValidator" p:validatorFactory-ref="validatorFactory"/>
<bean id="validatorFactory" class="org.springmodules.validation.commons.DefaultValidatorFactory">
<property name="validationConfigLocations" >
<list>
<value>/WEB-INF/validator-rules.xml</value>
<value>/WEB-INF/validation.xml</value>
</list>
</property>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor" />
</list>
</property>
<property name="order" value="1" />
</bean>
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="cookieMaxAge">
<value>3600</value>
</property>
<property name="defaultLocale" value="en" />
</bean>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basename="messages" />
<bean name="/Login.htm" class="controller.LoginController" p:sessionForm="true" p:commandName="loginCommand"
p:commandClass="bean.LoginCommand" p:formView="Login" p:validator-ref="beanValidator"/>
//jsp file ///
</b><a href="?lang=en_US">English</a><b>
user name-- text box
password -- text box
submit button
Login.jsp name
please advice me but when I click on submit there is some validation which show messages from messages.properties file
thanks in advance
推荐答案
检查此内容: ^ ]
自行开发的尝试可能看起来像这样:
check this: i18n Tutorial for Spring Framework[^]
a self developed attempt could look something like this:
public final class MultiLanguageSupport {
public static ResourceBundle oMap = ResourceBundle.getBundle("resource/language/language");
private static Logger oLogger = Logger.getLogger(MultiLanguageSupport.class);
static {
// load oMap with key/values according to selected language
}
public static final String getString(final String strKey) {
final String strReturn = MultiLanguageSupport.oMap.getString(strKey);
if ((null == strReturn) || (strReturn.length() == 0)) {
// error logging - string not found
}
return strReturn;
}
}
此类一被调用,地图就会被填充.然后可以使用MultiLanguageSupport.getString(KEY)
获取字符串.
您还应该签出此工具:http://sourceforge.net/projects/eclipse-rbe/
对我来说效果很好,可以更好地控制语言文件.
The Map is filled as soon as this class is called. you can then get your Strings with MultiLanguageSupport.getString(KEY)
.
You should also check out this tool: http://sourceforge.net/projects/eclipse-rbe/
Works fine for me and gives you better control on the language files.
感谢您的回复
我发现我的错误上面的代码是正确的,但是我的LoginController存在问题,该问题具有formbackingobject方法,并且控制器扩展了SimpleFormController类...
当我使用此方法时,它将正常工作-handleRequestInternal(req,res)
但是我想在现有应用程序中使用i18n,其中有LoginController扩展了SimpleFormController类,并具有onSubmit()方法,formbacking方法和各种逻辑,因此我如何使用Spring mvc 2.5在现有Web应用程序中应用i18n
预先感谢
thanks for your reply
I have found my mistake the above code is right but there is problem with my LoginController which have formbackingobject method and controller extends SimpleFormController class...
when I used this method it will work properly -handleRequestInternal(req,res)
but I want to use i18n in my existing application there is LoginController which have extends SimpleFormController Class and have onSubmit() method , formbacking method and various logic so how I can applied i18n in existing web application using Spring mvc 2.5
thanks in advance
这篇关于Spring MVC 2.5中的I18N无法正常运行拦截器而没有任何错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!