【发布时间】:2014-05-14 16:42:31
【问题描述】:
我的 jsf 页面上有一个 a4j:commandbutton。以下是代码摘录-
<a4j:commandButton id="submitBtn" value="#{msgsMass.MM_04_02_BTN_CONTINUE}"
reRender="addNewCardForm,saveAddNewCardForm" immediate="true"
action="#{bBean.retrieveOrderId}" oncomplete="addNewCreditCard()" >
addNewCardForm、saveAddNewCardForm是页面上的html表单,在addNewCreditCard()的javascript调用中显示和提交。
在这些表单中,我有一个输入字段,它将显示来自 bBean.retrieveOrderId 的值。然而,只有在表单加载了 orderId 的空白值后才会调用此 bean 方法。
请告诉我如何在向用户显示表单时获取表单字段上的 orderId 值。
【问题讨论】:
-
在retrieveOrderId 操作期间将orderId 保存在表单bean 中
-
我是。问题是我登录时 orderId 始终为空 - 第一次加载页面时
-
它与
a4j:commandButton(请参阅您的代码)和表单提交(请参阅问题标题)无关。在重定向到页面(显示页面)之前,您需要设置 bean 数据(例如 orderId)。 -
好的,让我澄清一下。我的应用程序中有一个付款页面。当用户想要继续付款时会调用 commandButton。单击此按钮,我将在 iframe 中显示第 3 方表单。在这种形式中,我需要获取并显示一个唯一的 orderId。所以这个 orderId 是在 bBean.retrieveOrderId 中生成的。一旦检索到,我将其存储在具有相应 getter 和 setter 的 bBean 属性 orderId 中。
-
现在,当我调用第三部分表单并在输入值中传入 orderId 字段时,它从 bean getter 方法中获取它。如果在 oncomplete javascript 函数“addNewCreditCard”上调用表单本身。由于在 commandButton 中首先调用操作,然后调用 oncomplete,因此我期望 orderId getter 在加载时具有值。但不知何故,表单在调用动作之前就被加载了
标签: javascript ajax jsf richfaces