【问题标题】:Struts2 action type json call all the functions from Action classStruts2动作类型json调用动作类的所有函数
【发布时间】:2012-02-02 05:44:18
【问题描述】:

我用过这样的Struts2 json

<package name="showcase" extends="json-default" >  

    <action name="DashBoardActivityJson" class="com.myDrDirect.doctor.action.patientOrderDetails" method="getRecentOrderDetails" >
       <result name="success" type="json" />
    </action>               
 </package>

但在这里我的问题有点疯狂。当我访问一个类中的一个函数时,它会调用页面中的每个函数,即使我在这里提到了方法名称。那是当我设置type="json" 时,该动作同时从课堂上调用getRecentOrderDetailsgetUserDetailses com.myDrDirect.doctor.action.patientOrderDetails 但在这里我只调用 getRecentOrderDetails。有没有人遇到过这个问题,请帮忙。

【问题讨论】:

    标签: json struts2


    【解决方案1】:

    我相信 JSON 插件会尝试调用以名称 "get" 开头的每个方法来序列化输出。 一种方法是将方法重命名为其他通用方法来处理此问题。否则您可以包含和排除参数。有关详细信息,请参阅插件文档

    json-plugin

    【讨论】:

    • 是的,你是对的。但是我已经完成了我项目的主要部分,并且从 get 开始有很多功能。关于如何管理它的任何想法?
    • 您好,我对 exludeProperties、includeProperties、enableSMD 和 excludeNullProperties 感到困惑。我添加了一个问题,请查看stackoverflow.com/questions/9115264/…
    【解决方案2】:

    struts2-json-plugin 序列化您的操作,因此您描述的是预期的行为。为了解决这个问题,插件提供了包含和排除参数,这些参数修改了序列化,以便将对象修剪成您想要的形式。

    在这个问题中有一个很好的例子: Struts2 + Json Serialization of items 这是另一个 Problem with Json plugin in Struts 2

    请查阅 struts2 站点上的插件文档:http://struts.apache.org/2.2.3/docs/json-plugin.html 这将解释如何使用 xml 或注解。

    【讨论】:

    • 感谢四元数,但它并没有解决我的问题。以上所有链接都解释了如何解决使用注释的问题,但不幸的是我没有在我的项目中使用 struts annotaion 标签。我也检查了链接 struts.apache.org/2.2.3/docs/json-plugin.html 我也试过这个,但它没有解决我的问题。当我在我的操作中引用 type="action" 时,它仍然调用我项目中的所有函数。你能建议我另一种解决方案吗?这对我真的很有帮助
    • 为什么不试试注释呢?只需尝试对他们执行 JSON 操作,如果它没有执行预期的操作,请在此处发布。使用 struts2 xml 您需要查看 xml 文件和操作以查看注释发生了什么,您只需要操作。只有收益,没有损失,尤其是在使用 struts2-conventions-plugin 时。
    • 但是我已经在使用我的一半项目而不使用 struts 注释。我可以从这个阶段整合它吗?
    • 当然。添加注释不应影响您的项目。您也应该查看约定插件...再次以合理的方式工作,您可以节省大量编写 xml 的时间...但它不会阻止您使用 xml 来做您想做的事。在 xml 中有些东西更好,全局设置和拦截器堆栈定义在那里最有意义,但动作特定的东西在动作中最容易理解。再次尝试使用 json 注释开始。如果你把约定插入一个镜头,我敢打赌你会希望你早点这样做(我做到了)。
    【解决方案3】:

    当我在单独的文件中编写操作时,我得到了正确的结果。感谢你们帮助解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-29
      • 2014-08-25
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      相关资源
      最近更新 更多