今天解决了jstl在jboss和resin两种应用服务器上的国际化设置问题。
相同的代码在不同的应用服务器上,却在resin上运行出问题,代码如下:
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<fmt:setLocale value="en_US" scope="session" />
<%
response.sendRedirect("login.jsp");
%>
跳转到login.jsp后,
Locale locale=(Locale)request.getSession().getAttribute(Globals.LOCALE_KEY);
在jboss服务器下取出的是Locale.US,但是在resin服务器下取出的还是Locale.SIMPLIFIED_CHINESE,
将代码修改成:
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<%@page import="java.util.Locale"%>
<%@page import="com.velcro.base.Globals"%>
<fmt:setLocale value="en_US" scope="session" />
<%
request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.US);
response.sendRedirect("login.jsp");
%>
就可以在resin服务器上正确识别了。
看来不同的应该服务器里的jsp解析器,还是有小的差别的。