chybove hlasky pres Struts): <%@ page session="true" contentType="text/html;charset=utf-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%-- nastaveni locale pro JSTL fmt tagy pro tohoto uzivatele --%>
<f:setLocale value="${param.locale}" scope="session" />
<%-- zkopirovani do Struts locale, tj. h:messages tagy --%>
<%
session.setAttribute(org.apache.struts.Globals.LOCALE_KEY,session.getAttribute(javax.servlet.jsp.jstl.core.Config.FMT_LOCALE+".session"));
%>
<%-- a jeste jednou --%>
<c:set var="locale" value="${param.locale}" scope="session" />
<c:choose>
<c:when test="${!empty param.kam}">
<c:redirect url="${param.kam}" />
</c:when>
<c:otherwise>
<c:redirect url="/index.do" />
</c:otherwise>
</c:choose>
ta stranka se vola jako locale.jsp?locale=cs&kam=/neco.do pro nastaveni
cestiny a redirect na /<context>/neco.do
Tag <fmt:setLocale> podle mne proste ulozi objekt java.util.Locale do session pod klicem "javax.servlet.jsp.jstl.fmt.locale.session", takze jste na spravne ceste. Jeste asi taky vola response.setLocale(), nekuchal jsem ho, takze to nevim jiste. Mozna je problem v tom, ze to mate jako filter, a volate to pri kazdem requestu, takze JSTL tagy nedostanou sanci si ze session vzit locale a zachovat se podle toho. Makub Petr Červinka wrote:
Dobry den,muzete mi prosim poradit, jak mohu programove nastavit Locale pro <fmt:message>?V dobe, kdy jsem pouzival Struts jsem pouzival nasledujici filter ktery fungoval k plne spokojenosti: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException { String l = request.getParameter("setLng"); if (l != null) { Locale locale; String l2 = request.getParameter("setLng2"); if (l2 != null) locale = new Locale(l, l2); else locale = new Locale(l);((HttpServletRequest) request).getSession().setAttribute(org.apache.struts.Globals.LOCALE_KEY, locale);} chain.doFilter(request, response); } zkousel jsem neco ekvivalentniho pro JSTL:HttpSession session = ((HttpServletRequest) request).getSession();Config.set(session, Config.FMT_LOCALE, locale); Config.set(request, Config.FMT_LOCALE, locale);session.setAttribute("javax.servlet.jsp.jstl.fmt.locale.session", locale); request.setAttribute("javax.servlet.jsp.jstl.fmt.locale.request", locale);ale nic z toho nefunguje a locales se berou vzdy podle nastaveni browseru. Pouzivam Spring MVC + Sitemesh ale myslim, ze by to na to nemelo mit vliv. Diky za kazdou radu Petr
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Supercomputing Center Brno Martin Kuba Institute of Computer Science email: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
