今天解决了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解析器,还是有小的差别的。