[jboss-user] [JBoss Portal] - Re: Layout I18N: wrong locale in JSP
halversp
do-not-reply at jboss.com
Fri Jan 19 12:51:18 EST 2007
For now, I've defined a custom PortalLayout class which passes the correct locale to the JSP (using an HttpServletRequestWrapper), and specify this class in my layouts file using the (undocumentated) "layout-implementation" attribute. Seems to work. Still unclear on the rationale for passing the original client request down.
p
| public class LocalizingLayoutImpl extends PortalLayout {
|
| public void assembleResponse(ServerRequest request,
| ServerResponse response,
| MarkupResult markupResult)
| throws ServletException, IOException
| {
| HttpServletRequest httpRequest = request.getContext().getClientRequest();
| HttpServletResponse httpResponse = response.getContext().getClientResponse();
| RenderContext renderCtx = getRenderContext(response.getStreamInfo(), request, markupResult);
| LayoutDispatcher dispatcher = new LayoutDispatcher(renderCtx, new LocalizedRequest(httpRequest, request), httpResponse, markupResult);
| dispatcher.include();
| }
|
| private class LocalizedRequest extends HttpServletRequestWrapper {
|
| private ServerRequest serverRequest;
|
| public LocalizedRequest(HttpServletRequest request, ServerRequest serverRequest) {
| super(request);
| this.serverRequest = serverRequest;
| }
|
| @Override
| public Locale getLocale() {
| Locale locale = serverRequest.getLocale();
| if (locale == null) {
| return super.getLocale();
| }
| else {
| return locale;
| }
| }
|
| @Override
| public Enumeration getLocales() {
| final Locale[] locales = serverRequest.getLocales();
| if (locales == null) {
| return super.getLocales();
| }
| else {
| return new Enumeration() {
| private int index = 0;
|
| public boolean hasMoreElements() {
| return index < locales.length;
| }
|
| public Object nextElement() {
| return locales[index++];
| }
|
| };
| }
| }
|
| }
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4003943#4003943
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4003943
More information about the jboss-user
mailing list