Felipe and Lukasz Spring 3.1 supports "injectable namespaces" to constructor of Spring Object would something like this work for proxyFactory?
http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#beans-c-namespace Obrigado, Martin ______________________________________________ Por favor, não altere ou perturbar essa transmissão > From: lukaszlen...@apache.org > Date: Thu, 27 Jun 2013 14:17:18 +0200 > Subject: Re: s:action tag showing result > To: user@struts.apache.org > > Username? > > 2013/6/27 Felipe Lorenz <felipe.lor...@idealogic.com.br>: > > Sure! > > > > I have created an user at jira, but I think I dont have permissions to open > > a new issue. Or am I in the wrong place? :) > > > > > > Felipe Lorenz > > > > Em 27/06/2013, às 03:11, Lukasz Lenart escreveu: > > > >> Thanks Felipe! > >> > >> I think we must extend RestActionProxyFactory to also add exclude list > >> of namespaces, eg. "/ajax,/login", thus will allow to work in your > >> configuration. > >> > >> Could you register an issue? > >> > >> > >> Thanks in advance > >> -- > >> Łukasz > >> + 48 606 323 122 http://www.lenart.org.pl/ > >> > >> 2013/6/26 Felipe Lorenz <felipe.lor...@idealogic.com.br>: > >>> Hi Lukasz, > >>> > >>> I could identify one plugin wich could be creating this behaviour, the > >>> rest plugin. > >>> > >>> > >>> Since I have this configuration: > >>>>> <constant name="struts.mapper.class" > >>>>> value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/> > >>>>> <constant name="struts.mapper.prefixMapping" > >>>>> value=":rest,/ajax:struts,/login:struts"/> > >>> > >>> > >>> I expect that, when I request the following url > >>> http://xxxxxxxxxxx.com/ajax/anyThingHere, struts should handle this call. > >>> But instead, RestActionProxyFactory is handle this call. > >>> > >>> But the RestActionProxyFactory class has a if, and every time the > >>> namespace attribute is injected with "/ajax" value. So the condition > >>> always is redirect to the rest plugin handler and not to the struts > >>> default. > >>> > >>> Here is my ActionProxyFactory implementation: > >>> > >>> public class CustomActionProxyFactory extends RestActionProxyFactory { > >>> > >>> @Override > >>> public ActionProxy createActionProxy(String namespace, String > >>> actionName, String methodName, Map<String, Object> extraContext, boolean > >>> executeResult, boolean cleanupContext) { > >>> RestActionProxyFactory p = new RestActionProxyFactory(); > >>> p.setContainer(container); > >>> if ("/ajax".equals(namespace)) { > >>> p.setNamespace("/idealogic"); > >>> } > >>> > >>> return p.createActionProxy(namespace, actionName, > >>> methodName, extraContext, executeResult, cleanupContext); > >>> } > >>> } > >>> > >>> By some reason, it fixed the origin behaviour. > >>> > >>> I hope it could help you. > >>> > >>> Thanks, > >>> Felipe Lorenz > >>> > >>> Em 26/06/2013, às 04:45, Lukasz Lenart escreveu: > >>> > >>>> As I understand you use <s:action executeResult="false"/> ? Which > >>>> means result named "json" shouldn't be executed, you can even remove > >>>> it. > >>>> > >>>> > >>>> Regards > >>>> -- > >>>> Łukasz > >>>> + 48 606 323 122 http://www.lenart.org.pl/ > >>>> > >>>> 2013/6/22 Felipe Lorenz <felipe.lor...@idealogic.com.br>: > >>>>> Hello Lukasz, > >>>>> > >>>>> I still facing this behaviour. Even with 2.3.16-SNAPSHOT. > >>>>> > >>>>> One thing that make me thing, was the flush attribute. When it is true, > >>>>> the json result (the string) appear in the position where the action > >>>>> tag is in the jsp. But, when I change it to false, the result appears > >>>>> in the top os my page. > >>>>> > >>>>> One workaround that I can use is return a result name that is no > >>>>> defined in the struts.xml. This workaround throw an exception, since > >>>>> struts could no find my result name, but my list is populated and no > >>>>> result from this action tag appear in my page. > >>>>> > >>>>> I hope this information can help. > >>>>> > >>>>> Also, I am printing my config: > >>>>> > >>>>> struts.xml: > >>>>> > >>>>> <?xml version="1.0" encoding="UTF-8" ?> > >>>>> <!DOCTYPE struts PUBLIC > >>>>> "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" > >>>>> "http://struts.apache.org/dtds/struts-2.3.dtd"> > >>>>> <struts order="10"> > >>>>> <constant name="struts.devMode" value="false" /> > >>>>> <constant name="struts.action.extension" value=",json,xhtml,xml"/> > >>>>> > >>>>> <constant name="struts.convention.action.mapAllMatches" > >>>>> value="true" /> > >>>>> <constant name="struts.convention.default.parent.package" > >>>>> value="default"/> > >>>>> > >>>>> <constant name="struts.custom.i18n.resources" value="global" /> > >>>>> > >>>>> <constant name="struts.mapper.class" > >>>>> value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/> > >>>>> <constant name="struts.mapper.prefixMapping" > >>>>> value=":rest,/ajax:struts,/login:struts"/> > >>>>> > >>>>> <package name="default" extends="rest-default"> > >>>>> > >>>>> <interceptors> > >>>>> <interceptor > >>>>> class="br.com.idealogic.interceptor.LoginInterceptor" name="login"/> > >>>>> <interceptor > >>>>> class="br.com.idealogic.interceptor.PermissaoInterceptor" > >>>>> name="permissao"/> > >>>>> <interceptor > >>>>> class="br.com.idealogic.interceptor.I18nInterceptor" name="idioma"/> > >>>>> <interceptor > >>>>> class="br.com.idealogic.interceptor.JPAInterceptor" name="jpa"/> > >>>>> <interceptor-stack name="jpaStack"> > >>>>> <interceptor-ref name="login"/> > >>>>> <interceptor-ref name="permissao"/> > >>>>> <interceptor-ref name="idioma"/> > >>>>> <interceptor-ref name="jpa"/> > >>>>> <interceptor-ref name="restDefaultStack"/> > >>>>> </interceptor-stack> > >>>>> </interceptors> > >>>>> <default-interceptor-ref name="jpaStack"/> > >>>>> > >>>>> > >>>>> <default-action-ref > >>>>> name="login_sistema"></default-action-ref> > >>>>> > >>>>> <global-results> > >>>>> <result name="login">/login.jsp</result> > >>>>> <result name="forbidden">/forbidden.jsp</result> > >>>>> </global-results> > >>>>> > >>>>> </package> > >>>>> > >>>>> <include file="struts-ajax.xml"/> > >>>>> <include file="struts-login.xml"/> > >>>>> <include file="struts-filtro.xml"/> > >>>>> </struts> > >>>>> > >>>>> struts-ajax.xml > >>>>> > >>>>> <?xml version="1.0" encoding="UTF-8"?> > >>>>> <!DOCTYPE struts PUBLIC > >>>>> "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" > >>>>> "http://struts.apache.org/dtds/struts-2.0.dtd"> > >>>>> <struts> > >>>>> <package name="ajax" extends="json-default" namespace="/ajax"> > >>>>> <interceptors> > >>>>> <interceptor > >>>>> class="br.com.idealogic.interceptor.JPAInterceptor" name="jpa"/> > >>>>> <interceptor-stack name="jpaJsonStack"> > >>>>> <interceptor-ref name="jpa"/> > >>>>> <interceptor-ref > >>>>> name="jsonValidationWorkflowStack"/> > >>>>> </interceptor-stack> > >>>>> </interceptors> > >>>>> <default-interceptor-ref name="jpaJsonStack"/> > >>>>> > >>>>> > >>>>> <action name="loadCidadeByEstado" > >>>>> method="loadCidadeByEstado" > >>>>> class="br.com.seedingControl.action.CidadeAction"> > >>>>> <result name="json" type="json"> > >>>>> <param name="includeProperties"> > >>>>> ^cidades\[\d+\]\.idCidade, > >>>>> ^cidades\[\d+\]\.nmCidade > >>>>> </param> > >>>>> </result> > >>>>> </action> > >>>>> > >>>>> </package> > >>>>> </struts> > >>>>> > >>>>> Thanks for all your help! > >>>>> > >>>>> Felipe Lorenz > >>>>> > >>>>> Em 22/06/2013, às 04:27, Lukasz Lenart escreveu: > >>>>> > >>>>>> 2013/6/22 Litman, Bruno <blit...@alabamainteractive.org>: > >>>>>>> We are also experiencing issues with tags and theme files, we are > >>>>>>> upgrading many applications from 2.3.4.1 to 2.3.14.3 > >>>>>>> I am not sure if this is related - if not and if I need to start a > >>>>>>> new discussion please let me know and accept my apology. > >>>>>>> > >>>>>>> 1/ > >>>>>>> > >>>>>>> We previously always coded forms as : > >>>>>>> <s:form action="login" namespace="/">.... > >>>>>>> Now randomly, this fails to generate the proper action url in the > >>>>>>> html (it is missing the '.action', which results in a 404 once you > >>>>>>> post the form) > >>>>>>> > >>>>>>> The only workaround we have found so far is to add the '.action' > >>>>>>> suffix to the s:form's action attribute. Before it was always added > >>>>>>> for us by struts. > >>>>>>> So now we are having success with > >>>>>>> <s:form action="login.action" namespace="/">... > >>>>>>> > >>>>>>> Is this expected behavior? Did this change recently? 2.3.4.1 is not > >>>>>>> so ancient.. > >>>>>> > >>>>>> No, it isn't - mainly a bug - Struts should add suffix for you, you > >>>>>> basically use the same action names as defined in struts.xml. This is > >>>>>> very strange, I have just tested with struts2-blank on Jetty and > >>>>>> suffix was there. Could you share more details about the config? > >>>>>> > >>>>>>> 2/ > >>>>>>> > >>>>>>> We are trying to replace the "required" attribute in the textfields > >>>>>>> with "requiredLabel" without success. Was the xhtml theme's ftl file > >>>>>>> "controlheader_core" updated to reflect the changes in the > >>>>>>> struts-tags.tld (requiredLabel replaced required)? > >>>>>> > >>>>>> You are right, it is bug :\ Please fill an issue > >>>>>> > >>>>>>> Also, it seems applications are randomly serving ftl files from other > >>>>>>> applications' theme folders with the same name. > >>>>>>> This was demonstrated by modifying something obvious in one > >>>>>>> application's ftl file (displaying some text next to a text field's > >>>>>>> label), and the effect can be seen randomly on other applications > >>>>>>> which shouldn’t even see that application's template folder (the > >>>>>>> themes are however named the same in both applications) > >>>>>>> I am only able to make the "requiredLabel" attribute work if placed > >>>>>>> in a <s:param> tag as opposed to being just an attribute of the > >>>>>>> s:textfield tag, but even so it is still not always using the same > >>>>>>> ftl files (however always from similarly named themes placed inside > >>>>>>> each application) > >>>>>>> > >>>>>>> This is extremely confusing. Is FreeMarker caching files > >>>>>>> independently of the application? Is the app container interfering > >>>>>>> with caching? (We are using Resin 4.0.36) > >>>>>> > >>>>>> Hmmm... very strange behaviour, it will be hard to find the source of > >>>>>> the problem. Maybe it is related to new ContainerHolder and how Resin > >>>>>> is managing threads - but I'm not sure :\ > >>>>>> > >>>>>> > >>>>>> 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 > >>>>>> > >>>>> > >>>>> > >>>>> --------------------------------------------------------------------- > >>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>>>> For additional commands, e-mail: user-h...@struts.apache.org > >>>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>>> For additional commands, e-mail: user-h...@struts.apache.org > >>>> > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>> For additional commands, e-mail: user-h...@struts.apache.org > >>> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >> For additional commands, e-mail: user-h...@struts.apache.org > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org >