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