【问题标题】:How to modify an object in webflow through ajax?如何通过ajax修改webflow中的对象?
【发布时间】:2012-05-12 07:51:00
【问题描述】:

我无法理解 ajax、控制器和 Web 流如何交互。

截至目前,我的项目通过流程从不同的视图状态逐页移动。

但是,在其中一些不同的页面上,我有一些 ajax 调用被定向到各种控制器以在“currentObject”上进行服务器处理。服务返回一个对象,我需要将其作为“currentObject”放回网络流中。

只是为了说清楚:我想将对象 A 与对象 B 相关联,对象 A 与“currentObject”相关联。我进行服务器处理并完成关联(因此“currentObject”与关联到对象 B 的对象 A 相关联)并将对象保存到数据库。当我点击“创建新对象”时,web-flow 仍然有“currentObject”,其中对象 A 与对象 B 没有关联。

我想将更新后的“currentObject”从我的控制器放入 web-flow,那么通过 ajax 调用修改 web-flow 中的对象的最佳方法是什么?

亚当

【问题讨论】:

    标签: java ajax spring-mvc spring-webflow


    【解决方案1】:

    这有点棘手。我遇到了类似的情况,发现这篇文章很有帮助:Ajax + Spring Webflow

    基本问题是您的 webflow 中的对象是序列化的,因此仅执行 AJAX 调用,然后像使用普通控制器那样修改数据库中的某些内容是行不通的。

    在我的例子中,基本模型对象是“计划”,我想删除一个名为“任务”的子对象。我在我的 webflow 的 XML 配置中设置了一个转换,如下所示:

    <transition on="dropTask">
        <evaluate expression="planService.dropTaskFromPlan(requestParameters.taskID,  plan)" />
    </transition>
    

    “planService”类将通过我的“Plan”对象运行,找到具有给定 ID 的任务,并将其删除。

    这里是 ajax 调用:

    var targetUrl = $("#actionPlanForm").attr("action") +     '&_eventId_dropTask=_eventId_dropTask';
    $.ajax({
        type : 'POST',
        data: $("#actionPlanForm").serialize() + '&taskID=' + taskID,
        url : targetUrl
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2020-10-27
      • 2021-09-28
      • 2013-10-18
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多