【问题标题】:How to set off a Spring WebFlow transition in javascript如何在 javascript 中触发 Spring WebFlow 转换
【发布时间】:2012-09-05 20:56:02
【问题描述】:

我有一个 Spring WebFlow2 项目,如果用户单击“loadschools”提交按钮,我将调用我的控制器并加载状态,然后根据选中的单选按钮重新显示具有新状态的同一屏幕。如果用户单击单选按钮,我想删除“loadschool”提交按钮并运行 java 脚本。这可以做到吗?我如何告诉 webflow 运行过渡?

<view-state id="SchoolVisitReport" view="SchoolVisitReport.jsp" model="visit" >
 <transition on="submit" to="addVisit">
   <evaluate expression="flowActions.validateVisit(visit, messageContext)"/>
 </transition>
 <transition on="cancel" to="endState" bind="false"/>
 <transition on="loadSchools" to="SchoolVisitReport" >
    <evaluate expression="flowActions.initializeSelectableStates(visit)" result="flowScope.selectableStates"/>
 </transition>
</view-state>

【问题讨论】:

    标签: java spring spring-mvc spring-webflow


    【解决方案1】:

    onchange='window.location="${flowExecutionUrl}&amp;_eventId=loadSchools"'

    【讨论】:

    • 试着把它放在onclick和onchange上
    • 布朗克斯-X
    • 我的错,这里有一个')'与此无关。尝试编辑后的代码
    • 是的。我只是在想我们必须更改 eventId 然后提交表单.. 你能帮忙吗?
    • 嗯,这已经解决了,所以你应该接受我的回答并写一个新问题,详细说明你接下来要做什么
    【解决方案2】:

    对于您的第二个问题,请尝试

    <script type="text/javascript">
                        Spring.addDecoration(new Spring.AjaxEventDecoration({
                            elementId : "radiobuttonId",
                            formId : "visitFormId",
                            event : "onChange",
                            params : {
                                _eventId : "loadSchools",
                                fragments : "body"
                            }
                        }));
                    </script>
    

    看看表单是否被提交

    【讨论】:

    • 我把这个放在哪里,我怎么称呼它
    • 你可以把它放在你的jsp文件的任何地方。只需将“radiobuttonId”替换为您的单选按钮 ID,将“visitFormId”替换为您的表单 ID。它将被自动调用
    猜你喜欢
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 2019-12-08
    • 2012-11-07
    相关资源
    最近更新 更多