Struts 2 IncludeProperty不起作用,但对于json结果类型,root可以起作用

Struts 2 IncludeProperty不起作用,但对于json结果类型,root可以起作用,json,struts2,Json,Struts2,我之所以发布这篇文章,是因为我通过谷歌搜索发现另一个人也有同样的问题,但没有提到解决方案。它在另一个帮助网站上,所以我不知道发布此类链接的政策是什么,但如果需要的话,我有它 所以我的问题是这样的: <action name="CountQuery" class="info.pureshasta.action.QueryAction" method="countQuery"> <result name="success" type="json">

我之所以发布这篇文章,是因为我通过谷歌搜索发现另一个人也有同样的问题,但没有提到解决方案。它在另一个帮助网站上,所以我不知道发布此类链接的政策是什么,但如果需要的话,我有它

所以我的问题是这样的:

    <action name="CountQuery" class="info.pureshasta.action.QueryAction" method="countQuery">
           <result name="success" type="json">
             <param name="root">
                countResults
             </param>
           </result>
           <result name="input">SetupQuery</result>     
    </action>

有人知道在什么情况下会发生这种情况吗?在后一种情况下,我是否缺少
countResults
的前缀?当我在后一种情况下运行应用程序时,我得到的是与我的操作相关联的所有属性,而不仅仅是我想要的属性。

所以我今天早上打开电脑,将root还原到includeProperties,这该死的事情就行了,你不知道吗。我在javascript领域的输出是

{“countResults”,10078467}

我进行了两次检查和三次检查,上面的struts.xml代码片段完全相同

对于未来的读者,当我使用root而不是includeProperty时

10078467
我猜这是每种情况下的预期行为。在我需要更多属性之前,root实际上对我来说效果更好,因为我可以直接使用该值,而不必在json对象中查找它(节省1个步骤,多懒!)


所以我想这是一个缓存问题?我注意到,在过去的一天中,当我使用jquery/struts2/json组合时,web应用程序显示更改的速度很慢。

您所做的看起来是正确的,您需要提供更多信息来暴露错误,添加action类、用于调用action的字符串和jsp。如果您还没有添加struts2 config browswer插件,那么添加该插件对您来说并没有什么坏处,这样您就可以看到struts2认为配置了什么。你绝对不应该得到所有的属性,你应该得到'countResults'或者什么都没有。我无法用struts 2.2.3重现你的问题。您使用的是什么版本的struts和json插件?好的,回到代码前面,我可以看看注释@doctrey看看我的项目,我正在使用struts2-core-2.2.1.1和struts2-json-plugin-2.2.1.1是的,这可能就是问题所在。我认为将参数
noCache
设置为
true
可能会有所帮助,但这并不能保证缓存依赖于浏览器。仅用于后台:当您将root设置为countResults时,countResults会被序列化,从而生成10078467。通常是序列化为JSON的操作,这就是您看到名称的原因。使用include/exclude属性,可以减少将被序列化的类属性。
10078467