Hi Marc, I guess the problem may come from the fact that you're using
request.getRequestDispatcher(uri).forward(request, response); in the Filter instead of filterChain.doFilter(...); And this is somehow causing your values not to be submitted which means process-validations will fail and thus your action method isn't called. However I don't really know why this happens. Try to download the source of your MyFaces version and debug through a whole request. Then you'll see what really happens and where the problem is! Regards, Jakob 2010/12/1 AMIR-TAHMASSEB Marc Kamran <marc.amir-tahmas...@ombudsman.europa.eu> > > Dear all, > > Since I added a custom filter to deal with the local language, I have some > problems with some of my forms :-( > > I user myfaces 1.1.8 + Tomcat 1.1.10 + jsf-faceletes 1.1.14 on a Tomcat 6 > server with JDK 1.5 and j2ee-1.4 > > Here is my problem : > I have a contact form and when I submit my form the page is refreshed but > nothing happens and the action is not done. > Every thing worked well until I added a new filter (LocalLanguageFilter) to > deal with the language of navigation. > Before my links where like this : > http://www.ombudsman.europa.eu/shortcuts/contacts.faces > With the filter they will be like this : > (http://www.ombudsman.europa.eu/en/shortcuts/contacts.faces) > The filter seems to work fine with anything but the Input Text fields :-( > > In my form I have something like that : > > <h:commandLink id="sendButton" action="#{contactForm.send}" > title="#{session.messages.shortcuts_contactform_send}"> > #{session.messages.shortcuts_contactform_send} > </h:commandLink> > > In my web.xml I have this filter : > > <filter> > <filter-name>localLanguageFilter</filter-name> > <filter-class> > ec.ep.eo.eoweb.filter.LocalLanguageFilter > </filter-class> > </filter> > > <filter-mapping> > <filter-name>localLanguageFilter</filter-name> > <url-pattern>*.faces</url-pattern> > </filter-mapping> > > In my faces-config : > > <managed-bean> > <managed-bean-name>contactForm</managed-bean-name> > > <managed-bean-class>ec.ep.eo.eoweb.presentation.bean.form.ContactForm</managed-bean-class> > <managed-bean-scope>session</managed-bean-scope> > <managed-property> > <property-name>services</property-name> > <value>#{EOWebServicesImpl}</value> > </managed-property> > </managed-bean> > > <navigation-rule> > <from-view-id>*</from-view-id> > <navigation-case> > <from-outcome>go_contacts</from-outcome> > <to-view-id>/shortcuts/contacts.xhtml</to-view-id> > <redirect /> > </navigation-case> > </navigation-rule> > > In my ContactForm, I have a send() method that is never reched :-( : > > public > > synchronized String send() { > (some action to send an email....) > } > > And finaly, here is my LocalLanguageFilter : > > public class LocalLanguageFilter implements Filter { > > ... > > public void > > doFilter(ServletRequest servletRequest, ServletResponse servletResponse, > FilterChain filterChain) throws IOException, ServletException { > > HttpServletRequest request = (HttpServletRequest) servletRequest; > HttpServletResponse response = (HttpServletResponse) servletResponse; > String originalUri = request.getRequestURI().toLowerCase(); > String uri = originalUri; > String contextPath = request.getContextPath().toLowerCase(); > if (uri.startsWith(contextPath)) { > uri = uri.substring(contextPath.length()); > } > String[] parts = uri.split(Constants.PATTERN_SLASH); > if (parts.length>0 && parts[1].length()==2) { > String languageCode=parts[1]; > uri = uri.substring(3); > ILanguage language = > getServices().findLanguageByBusinessKey(languageCode); > if (language==null) { > language=Constants.ENGLISH; > } > request.getSession().setAttribute(Constants.SYSTEM_LANGUAGE, language); > } > > request.getRequestDispatcher(uri).forward(request, response); > > } > > ... > > } > > Thanks in advance for you help > > Marc > > > > > Médiateur européen > > Marc Kamran Amir-Tahmasseb > > Unité Communication - Développeur web > > T. +33 (0)3 88 17 44 10 > > marc.amir-tahmas...@ombudsman.europa.eu > > 1 avenue du Président Robert Schuman > > CS 30403 > > F - 67001 Strasbourg Cedex > > T. + 33 (0)3 88 17 23 13 > > F. + 33 (0)3 88 17 90 62 > > www.ombudsman.europa.eu > > > > > > -- Jakob Korherr blog: http://www.jakobk.com twitter: http://twitter.com/jakobkorherr work: http://www.irian.at