1

我的表单上的 Spring WebFlow2 中的每个转换都需要隐藏按钮吗?

如果这是真的,我开始不喜欢 Spring WebFlow2。有人告诉我,我希望表单具有的每个转换都需要一个隐藏按钮。示例如果我有一个带有提交和重置的表单,我知道我应该使用两个按钮。

但是,如果我有一个需要启动转换以在表单上加载一些数据的表单,我真的需要每个转换类型的按钮吗?我会觉得这很疯狂,但这是真的吗?

他是我的商店。我有一个用户开始填写的表格,一旦用户单击单选按钮,我需要将一些学校加载到下拉列表中供用户选择。我发现这样做的唯一方法是使用 javascript 和一个隐藏按钮来启动 loadschool 转换类型。例子:

这是最好的方法吗?这是唯一的方法吗?我真的需要为每个过渡提供一个按钮吗?

我的流量:

<view-state id="SchoolVisitReport" view="SchoolVisitReport.jsp" model="visit" >
<transition on="submit" to="addVisit">
<evaluate expression="flowActions.validateVisit(visit, messageContext)"/>
</transition>

<transition on="loadSchools" to="SchoolVisitReport" >
<evaluate expression="flowActions.initializeSelectableSchool s(visit)" result="flowScope.selectableSchools"/>
</transition>

<transition on="cancel" to="endState" bind="false"/>
</view-state>

我的 JavaScript:

function loadSchools(strBorough)
{
alert("Loading Schools for borough " + strBorough);
document.visit._eventId_loadSchools.click();

}

我的单选按钮:

<form:radiobutton tabIndex="9" onchange='loadSchools();' value="B" path="borough" />Bronx-X<BR>
<form:radiobutton tabIndex="10" onchange='loadSchools();' value="K" path="borough" />Kings-K<BR>
<form:radiobutton tabIndex="11" onchange='loadSchools();' value="M" path="borough" />Man.-M<BR>

所以有人可以告诉我,如果我用 webflow2 做这件事是正确和最好的方式 .. 谢谢

我尝试了以下代码,但没有提交表单

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

1 回答 1

0

不,您不需要隐藏按钮来访问转换。您可以简单地加载流程执行 URL 并将其传递给一个_eventId=loadSchools参数。例如:

window.location='${flowExecutionUrl}&_eventId=loadSchools'

编辑:由于您也需要传递表单字段,我认为您需要执行 JavaScript 表单提交,例如:

function loadSchools(strBorough)
{
    var form = document.forms['yourFormId'];
    form.elements['_eventId'].value = 'loadSchools';
    form.submit();
}

(我不是发誓这是确切的语法,但希望你明白这一点。)

另一种选择是提前将所有学校加载到页面中,然后在您的 JavaScript 中简单地切换显示哪些学校。

最后,您可能希望使用 AJAX而不是完整的表单提交来检索学校列表。

于 2012-09-05T13:31:22.827 回答