Hi Braun,

I wrote an action to encode the request params before accessing them in the sitemap:

public class RequestEncodedParamAction extends ComposerAction implements ThreadSafe {

    public final static String MAP_URI         = "requestURI";
    public final static String MAP_QUERY       = "requestQuery";
    public final static String MAP_CONTEXTPATH = "context";

    public final static String PARAM_PARAMETERS = "parameters";
    public final static String PARAM_DEFAULT_PREFIX = "default.";


    public Map act( Redirector redirector, SourceResolver resolver, Map objectModel, 
String source, Parameters param )
        throws Exception
    {

        Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT);
        if (request == null) {
          getLogger().error("RequestInfoAction: no request object!");
          return(null);
        }

        Map map = new HashMap();

        map.put(MAP_URI, request.getRequestURI());

        String query = request.getQueryString();
        if (query != null && query.length() > 0){
          map.put(MAP_QUERY, "?" + query);
        }
        else{
          map.put(MAP_QUERY, "");
        }

        map.put(MAP_CONTEXTPATH, request.getContextPath());

        if ("true".equalsIgnoreCase(param.getParameter(PARAM_PARAMETERS, null))){
          Enumeration e = request.getParameterNames();
          while(e.hasMoreElements()){
            String name = (String) e.nextElement();
            String value = request.getParameter(name);

                        getLogger().debug("Encode Parameter: " + name + " with value: 
" + value);
            if (value != null && !map.containsKey(name)){
              map.put(name, URLEncoder.encode( value ));
            }
          }

          String[] paramNames = param.getNames();
          for (int i=0; i< paramNames.length; i++) {
              if (paramNames[i].startsWith(PARAM_DEFAULT_PREFIX) &&
                  
(request.getParameter(paramNames[i].substring(PARAM_DEFAULT_PREFIX.length())) == 
null)) {
                        getLogger().debug("Encode Parameter: " + paramNames[i] + " 
with value: " + param.getParameter(paramNames[i]));
                        
map.put(paramNames[i].substring(PARAM_DEFAULT_PREFIX.length()), URLEncoder.encode( 
param.getParameter(paramNames[i])));
              }
          }


        }

        return(map);
    }
}

-----Ursprüngliche Nachricht-----
Von: Braun [mailto:jakarta@;kbr-immobilien.de]
Gesendet: Sonntag, 10. November 2002 02:32
An: [EMAIL PROTECTED]
Betreff: Umlauts in cocoon 2.0.2


I have the problem with german Umlauts in request parameters.
When I transfer german Umlauts by request paramaters cocoon doesn't 
decode the Umlauts encoding when I use these Umlauts in my xml-documents 
or stylesheets.
I set already all my encodings to ISO-8859-1.




---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>

---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>

Reply via email to