Oracle MAF:(签名捕获)从Managed Bean调用javascript函数
Oracle MAF : (Signature Capture) Calling a javascript function from Managed Bean
我遵循本教程来获取Oracle MAF应用程序中的签名捕获功能。
当我尝试使用教程中解释的简单POC时,我使其工作没有任何问题。我把同样的逻辑集成到我的项目中。
以下是我为集成所做的设置,
- 我已经在任务下将
js and css
文件包含到maf-feature.xml
中流定义(我有amx
页)。 -
我已经将bean的作用域定义为
pageFlow
内部XXXXX-task-flow.xml
文件而不是adfc-mobile-config.xml
下面,<managed-bean id="__20"> <managed-bean-name>signatureCapture</managed-bean-name> <managed-bean-class>package.SignatureCapture</managed-bean-class> <managed-bean-scope>pageFlow</managed-bean-scope> </managed-bean>
-
当我调用
fetchHandler
和cleaHandler
方法使用下面commandButton
,它正在调用方法而没有失败。
从方法中,下面的语句不会触发JavaScript
在fetchHandler方法中:
AdfmfContainerUtilities.invokeContainerJavaScriptFunction(AdfmfJavaUtilities.getActiveContextId(), "doFetch",
new Object[] { });
在clearHandler方法中:
AdfmfContainerUtilities.invokeContainerJavaScriptFunction(AdfmfJavaUtilities.getActiveContextId(), "doClear",
new Object[] { });
下面是JavaScript (MyFile.js
)供您参考,
(function () {
// This method clears the signature area
doClear = function () {
alert("Clear function called.!");
var sigElement = document.getElementById("sig");
if (sigElement == null)
alert("sigElement not found");
var sig = $(sigElement);
sig.signature('clear');
adf.mf.api.invokeMethod("package.SignatureCapture", "FetchCallback", "", onInvokeSuccess, onFail);
};
// This method gets the signature as a JSON string. As an example, it does an alert of the string and then sends it to a Java handler for further processing
doFetch = function () {
alert("Fetch function called.!");
var sigElement = document.getElementById("sig");
if (sigElement == null)
alert("sigElement not found");
var sig = $(sigElement);
var fetchData = sig.signature('toJSON');
adf.mf.api.invokeMethod("package.SignatureCapture", "FetchCallback", fetchData, onInvokeSuccess, onFail);
};
function onInvokeSuccess(param) {
alert("onInvokeSuccess");
};
function onFail() {
alert("It failed");
};
})();
任何建议都将是感激的。如果您需要更多的细节,请在下面评论。
尝试使用您的特性ID(作为字符串)而不是AdfmfJavaUtilities.getActiveContextId()
。
从Oracle文档(点击):
public static Object invokeContainerJavaScriptFunction(String featureId,
String methodName,
Object[] args)
参数:
- featureId:要调用方法的特性的id
- methodName:方法名
- args:要传递的参数数组
的回报:
- 一个JSON对象
就像你自己看到的那样,AdfmfJavaUtilities.getActiveContextId()
没有返回featureID而是返回当前功能的活动EL上下文的名称(点击)
相关文章:
- 我该如何从JSF Bean调用JavaScript函数
- 访问托管Bean中的ApplicationModule(FacesContext NULL)
- 使用jstl c:forEach在迭代jsp bean上创建javascript json对象
- 将数组从 Spring bean 转换为 JSON 以在 JSP 中引用
- 将变量从 bean 传递到素数页
- 使用 Bean 对象中的 JSON 构造数组
- 通过调用 Ajax 来设置 struts bean 值
- 从 javascript 调用 bean 方法
- JSP/Struts2:如何访问所选表行中的对象bean
- 如何使用按钮的jsp点击事件将属性设置为struts-bean
- 将bean变量传递给javascript
- 将托管 Bean 与 javascript 结合使用来创建元素
- 在 Javascript 中迭代 bean
- JavaScript var 未正确传递给支持 Bean
- 如何从托管 Bean 调用 JavaScript 函数
- 如何将 jstl 函数中的 javascript 变量传递给托管 Bean
- 在 struts 2 中将 java bean 转换为 json 数据
- 如何使用 javascript 显示来自托管 Bean 的计时器
- 将 JQuery 日期选取器保存到 Bean 中的多个字段 (d/m/y)
- Oracle MAF:(签名捕获)从Managed Bean调用javascript函数