首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从.jsf页面adf 12c中的函数中获取返回值?

在Oracle ADF 12c中,.jsf页面通常与后端的Java代码(如Managed Bean或Backing Bean)进行交互。要从.jsf页面中的JavaScript函数获取返回值并将其传递给后端的Java代码,可以使用以下几种方法:

方法一:使用JavaScript和ADF Faces的客户端事件

你可以使用JavaScript在客户端执行操作,然后通过ADF Faces的客户端事件将结果传递给后端的Managed Bean。

步骤:

  1. 在.jsf页面中定义JavaScript函数
  • <af:resource type="javascript"> function getValueFromJS() { // 这里是你的JavaScript逻辑 var value = "some value"; // 这是你要返回的值 return value; } </af:resource>
  • 在.jsf页面中定义一个隐藏的输入框和按钮
  • <af:inputText id="hiddenInput" value="#{backingBean.hiddenValue}" visible="false"/> <af:commandButton id="hiddenButton" actionListener="#{backingBean.processValue}" visible="false"/>
  • 在.jsf页面中定义一个JavaScript函数来调用后端方法
  • <af:resource type="javascript"> function callBackend() { var value = getValueFromJS(); var hiddenInput = AdfPage.PAGE.findComponentByAbsoluteId('hiddenInput'); hiddenInput.setValue(value); var hiddenButton = AdfPage.PAGE.findComponentByAbsoluteId('hiddenButton'); hiddenButton.click(); } </af:resource>
  • 在.jsf页面中触发JavaScript函数
  • <af:commandButton text="Get Value" onclick="callBackend(); return false;"/>
  • 在Managed Bean中处理值
  1. @ManagedBean @RequestScoped public class BackingBean { private String hiddenValue; public String getHiddenValue() { return hiddenValue; } public void setHiddenValue(String hiddenValue) { this.hiddenValue = hiddenValue; } public void processValue(ActionEvent actionEvent) { // 处理从JavaScript传递过来的值 System.out.println("Value from JavaScript: " + hiddenValue); } }

方法二:使用ADF Faces的JavaScript API和Partial Page Rendering (PPR)

你可以使用ADF Faces的JavaScript API和Partial Page Rendering (PPR)来更新页面组件并将值传递给后端。

步骤:

  1. 在.jsf页面中定义JavaScript函数
  • <af:resource type="javascript"> function getValueFromJS() { // 这里是你的JavaScript逻辑 var value = "some value"; // 这是你要返回的值 return value; } </af:resource>
  • 在.jsf页面中定义一个隐藏的输入框
  • <af:inputText id="hiddenInput" value="#{backingBean.hiddenValue}" visible="false"/>
  • 在.jsf页面中定义一个JavaScript函数来更新隐藏输入框的值并触发PPR
  • <af:resource type="javascript"> function updateBackend() { var value = getValueFromJS(); var hiddenInput = AdfPage.PAGE.findComponentByAbsoluteId('hiddenInput'); hiddenInput.setValue(value); AdfPage.PAGE.queueEvent(new AdfCustomEvent(hiddenInput, "valueChange", null, false)); } </af:resource>
  • 在.jsf页面中触发JavaScript函数
  • <af:commandButton text="Get Value" onclick="updateBackend(); return false;"/>
  • 在Managed Bean中处理值
  1. @ManagedBean @RequestScoped public class BackingBean { private String hiddenValue; public String getHiddenValue() { return hiddenValue; } public void setHiddenValue(String hiddenValue) { this.hiddenValue = hiddenValue; } public void processValue(ValueChangeEvent valueChangeEvent) { // 处理从JavaScript传递过来的值 System.out.println("Value from JavaScript: " + hiddenValue); } }

总结

通过以上方法,你可以在Oracle ADF 12c中从.jsf页面的JavaScript函数获取返回值并将其传递给后端的Managed Bean。方法一使用了隐藏的输入框和按钮来传递值,而方法二则使用了ADF Faces的JavaScript API和Partial Page Rendering (PPR)来更新页面组件并触发后端处理。选择哪种方法取决于你的具体需求和应用场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • JSF预热功能在企业前台的实践与探索

    Tech 导读 企业前台包含了企业业务大部分的对外前台系统,其中京东VOP平台(开放平台)适合于自建内网采购商城平台的企业客户。京东为这类客户专门开发API接口,对接到客户内网的网上商城,将产品SKU直接推送到客户内网,客户内部采购人员可以直接在内网商城进行下单采购,订单信息通过API接口传递到京东后台,由京东安排物流配送服务。VOP模式下,客户内网的数据信息京东并不抓取,从而实现内部采购架构的独立搭建及数据的保密与安全。 随着业务的不断发展过程中,VOP截至目前已经服务于上千家企业SaaS商城,其API接口的高并发、高可用、高可靠也就越发的重要。尽管上线时尽可能的降低对接口的波动,整个上线流程中无损下线是没问题(NP层冷备机器直至无流量打进来,JSF层下线JSF服务),但是(自身&服务提供方)上线的瞬时波动或多或少会引起系统的一阵报警,每一次性能或者可用率的报警都可能带来客诉。 JSF1.7.6对于预热策略动态下发特性的升级公告吸引了作者,所以本文也将从JSF1.7.6预热的实践测试报告中,真实的讲述预热给前台带来的体验和帮助,希望对读者有参考作用。

    02
    领券