我设法解决了这些问题。
关于默认语言环境,只要资源包中存在默认的.properties文件,spring就会在内部解决该问题。
因此,在我的情况下,必须有一个xxx_pt.properties xxx_en.properties和一个xxx.properties。
对于异常处理,我实际上不得不重写LocaleChangeInterceptor类的preHandle方法并捕获异常:
spring-servlet.xml
<bean id="localeChangeInterceptor" > <property name="paramName" value="lang" /></bean>
LanguageExceptionHandler.java
public class LanguageExceptionHandler extends LocaleChangeInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { try { super.preHandle(request, response, handler); } catch (ServletException e) { DebugLogger.writeError("ServletException", e); } catch (IllegalArgumentException e) { DebugLogger.writeError("IllegalArgumentException", e); } return true; }}根据尽管本,无效字符应区别在spring的新版本处理。



