使用JSF AJAX方法保持JavaScript模块作用域
Using JSF AJAX methods to keep JavaScript module scope
我正在使用具有JSF2框架的应用程序。该框架的思想是管理后端(Java)和前端之间的连接。
我知道,我们使用的JSF版本创建了 JSF。ajax对象,其中包含执行传递和获取数据的几个方法。因此,我正在构建基于模块模式的前端架构,每个模块都有私有范围。在几个模块中,我需要进行AJAX调用以从后端获取一些数据,但是如果我通过调用a4j:jsFunction(先前创建的)来使用JSF的标准方式,我将立即失去JavaScript模块的作用域。并且,当然不能返回到模块。
因此,我想问的是,是否有可能存档类似于jQuery.ajax()方法使用jsf。Ajax 对象及其方法(请求/响应)?!
jQuery.ajax({
url: "", // I don't have url as in PHP, I have JSF action listener #{method.function}
data: { param: 'value' }, // params for method.function
success: function(data){
// yes I need to receive the data from Backend (maybe #{bean} or JSON)
}
});
我坚信,有一种方法可以通过保持JavaScript模块的作用域来使用JSF和AJAX for Java (A4J)来归档我的需求,而在进行AJAX调用时无需超出该范围。
如果您需要一个ajax组件从服务器上发布/检索任意数据,那么我不认为jsf。Ajax是适合您的工具。它与JSF表示严格耦合,可用于调用服务器逻辑和呈现部分html页面。响应将是带有部分更新的XML。下面我将描述如何使其符合您的目的,但这不是该api的预期应用。
简而言之,它必须像这样命名:
jsf.ajax.request(<DOM_node>, event, {render: "<rendered_id>", execute: "@this"})
其中DOM_node是具有动作监听器的元素,事件是侦听器支持的类型的JS事件(如果您使用jsf.ajax.request作为onclick,那么只是"事件"变量将可用,您可以按原样传递它)。& lt; rendered_id>应该是围绕您想要作为回调执行的脚本的JSF组件的客户端id。
结果调用应该要求JSF执行附加到与DOM_node(如commandLink)相对应的组件的操作监听器,并使用
- Javascript模块系统I'I’我正在努力,但搞不明白
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 记录javascript模块名称
- JavaScript模块模式-如何在使用对象/函数之前激发构造函数/init函数
- 在我的JavaScript模块中绑定一个点击事件
- JavaScript:模块模式差异
- 如何扩展使用原型的javascript模块
- 将变量传递给 Javascript 模块化模式方法
- JavaScript 模块模式给出了意想不到的结果
- JavaScript模块化和依赖注入之间的区别
- Firebug没有列出所有javascript模块
- 创建javascript模块
- Javascript模块用法
- 根据当前页面加载和运行Javascript模块
- 如何在javascript模块中包含jquery而不与全局名称空间冲突
- 在节点和浏览器中加载单个javascript模块
- 如何将JavaScript模块添加到生成器meanjs应用程序中
- Javascript 模块模式问题
- 如果一个javascript模块为null,那么它的侦听器将被清除
- 我应该如何使用'这'(self)在javascript模块中