2014-08-24 13:42 GMT+02:00 Amine BADID <amineba...@yahoo.fr>:
> Hi Lukasz.
> Thank you.
> I've found the problem.
> It was about an accentuated word. I've forget to add a number to the unicode 
> word like '\u00e9'.
> The class TextProviderHelper do not give the good message !
> Because it lacks only a letter in the document global_fr.properties, 
> TextProviderHelper do not see it !

I rather suggest you should read how Resource bundles work in Java!!!!
http://docs.oracle.com/javase/8/docs/api/java/util/ResourceBundle.html

> I hope in the futurthat Struts team will modify the message.

Sure thing, we are going to release our own JVM version!!!!!

>
> Here is the source code of this class !!!! :
> /* * $Id$ * * Licensed to the Apache Software Foundation (ASF) under one * or 
> more contributor license agreements.  See the NOTICE file * distributed with 
> this work for additional information * regarding copyright ownership.  The 
> ASF licenses this file * to you under the Apache License, Version 2.0 (the * 
> "License"); you may not use this file except in compliance * with the 
> License.  You may obtain a copy of the License at * *  
> http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable 
> law or agreed to in writing, * software distributed under the License is 
> distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * 
> KIND, either express or implied.  See the License for the * specific language 
> governing permissions and limitations * under the License. */ package 
> org.apache.struts2.util; import com.opensymphony.xwork2.util.ValueStack;
> import com.opensymphony.xwork2.util.logging.Logger;
> import com.opensymphony.xwork2.util.logging.LoggerFactory;
> import com.opensymphony.xwork2.TextProvider; import java.util.Iterator;
> import java.util.List;
> import java.util.LinkedList;
> import java.util.Collections; /** * Helper methods to access text from 
> TextProviders */
> public class TextProviderHelper { private static final Logger LOG = 
> LoggerFactory.getLogger(TextProviderHelper.class); /** * <p>Get a message 
> from the first TextProvider encountered in the stack. * If the first 
> TextProvider doesn't provide the message the default message is returned.</p> 
> * The stack is searched if if no TextProvider is found, or the message is not 
> found. * @param key             the message key in the resource bundle * 
> @param defaultMessage  the message to return if not found (evaluated for 
> OGNL) * @param args            an array args to be used in a {@link 
> java.text.MessageFormat} message * @param stack           the value stack to 
> use for finding the text * * @return the message if found, otherwise the 
> defaultMessage */ public static String getText(String key, String 
> defaultMessage, List<Object> args, ValueStack stack) { return getText(key, 
> defaultMessage, args, stack, true); } /** * <p>Get a message from the first 
> TextProvider
>  encountered in the stack. * If the first TextProvider doesn't provide the 
> message the default message is returned.</p> * <p>The search for a 
> TextProvider is iterative from the root of the stack. * <p>This method was 
> refactored from  {@link org.apache.struts2.components.Text} to use a * 
> consistent implementation across UIBean components.</p> * @param key          
>    the message key in the resource bundle * @param defaultMessage  the 
> message to return if not found (evaluated for OGNL) * @param args            
> an array args to be used in a {@link java.text.MessageFormat} message * 
> @param stack           the value stack to use for finding the text * @param 
> searchStack     search stack for the key * * @return the message if found, 
> otherwise the defaultMessage */ public static String getText(String key, 
> String defaultMessage, List<Object> args, ValueStack stack, boolean 
> searchStack) { String msg = null; TextProvider tp = null; for (Iterator 
> iterator =
>  stack.getRoot().iterator(); iterator.hasNext();) { Object o = 
> iterator.next(); if (o instanceof TextProvider) { tp = (TextProvider) o; msg 
> = tp.getText(key, null, args, stack); break; } } if (msg == null) { // 
> evaluate the defaultMesage as an OGNL expression if (searchStack) msg = 
> stack.findString(defaultMessage); if (msg == null) { // use the 
> defaultMessage literal value msg = defaultMessage; } if (LOG.isWarnEnabled()) 
> { if (tp != null) { LOG.warn("The first TextProvider in the ValueStack 
> ("+tp.getClass().getName()+") could not locate the message resource with key 
> '"+key+"'"); } else { LOG.warn("Could not locate the message resource 
> '"+key+"' as there is no TextProvider in the ValueStack."); } if 
> (msg.equals(defaultMessage)) { LOG.warn("The default value expression 
> '"+defaultMessage+"' was evaluated and did not match a property.  The literal 
> value '"+defaultMessage+"' will be used."); } else { LOG.warn("The default 
> value expression '"+defaultMessage+"'
>  evaluated to '"+msg+"'"); } } } return msg; } /** * <p>Get a message from 
> the first TextProvider encountered in the stack. * If the first TextProvider 
> doesn't provide the message the default message is returned.</p> * <p>The 
> search for a TextProvider is iterative from the root of the stack. * <p>This 
> method was refactored from  {@link org.apache.struts2.components.Text} to use 
> a * consistent implementation across UIBean components.</p> * @param key      
>        the message key in the resource bundle * @param defaultMessage  the 
> message to return if not found * @param stack           the value stack to 
> use for finding the text * * @return the message if found, otherwise the 
> defaultMessage */ public static String getText(String key, String 
> defaultMessage, ValueStack stack) { return getText(key, defaultMessage, 
> Collections.emptyList(), stack); }
> }

Thanks a lot!!!!!!! Git is useless!!!!!!!!


Kind regards
-- 
Ɓukasz
+ 48 606 323 122 http://www.lenart.org.pl/

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to