Ajax使用tile调用WebFlow

时间:2012-11-20 03:49:51

标签: jquery ajax spring-webflow tiles

我正在关注您的示例“Ajax对WebFlow的调用”,但我没有让它工作。 请问你能分享一下你的例子。我的问题是我想从一个页面进行ajax调用并获得它的部分渲染但是我从成功函数得到的是整个页面内容。

这就是我所拥有的。

这是在我的 xxx-flow.xml

    <on-entry>
        <evaluate
            expression="requirementService.getRequirementDetailsForEdit(flowRequestContext)"
            result="flowScope.editableRequirement" />
    </on-entry>
    <transition on="addEmptySkillRequirements">
        <evaluate expression="requirementService.addEmptySkillRequirementForEdit(flowRequestContext)" 
        result="flowScope.content123"/>
    </transition>

    <transition on="continue" to="listRequirements" />
</view-state>

这是我的* .jsp电话

<form id="myForm" method="post" action="${flowExecutionUrl}&_eventId=addEmptySkillRequirements&ajaxSource=true&fragments=content">
     <input type="submit" value="Insert111" name="_eventId_addEmptySkillRequirements" id="submitMyForm" onclick="insertData12()"/>
</form>

在同一个jsp中,这是我的ajax调用

function insertData12() {

    $.ajax({
                type : "POST",
                url : '${flowExecutionUrl}&_eventId=addEmptySkillRequirements&ajaxSource=true&fragments=content',
                data : $("#myForm").serialize(),
                dataType: "text",
                accepts: "text/html",


                success : function(content) {
                    alert("success" + content);
                     $('#content').html(content);

                },
                error : function(data) {
                    alert('fail' );

                }
            });
    return false;
};

这是我的tiles.xml

<definition name="editRequirement" extends="base.definition">
    <put-attribute name="title" value="Requirement List" />
    <put-attribute name="content" value="/pages/requirements/editReqDetails.jsp"  />
</definition>

2 个答案:

答案 0 :(得分:0)

如果您只想要渲染片段“content”,则必须放置 在您的流程定义中<render fragments="content"/>

<transition on="addEmptySkillRequirements">
    <evaluate expression="requirementService.addEmptySkillRequirementForEdit(flowRequestContext)" 
    result="flowScope.content123"/>
    <render fragments="content"/>
</transition>

答案 1 :(得分:0)

如果您仍然面临issueUse&amp; ajaxSource = insert_data,其中'insert_data'是您按钮的ID。有关详细信息,请参阅我的更新帖子:

Ajax call to WebFlow