在viewcontroller中从模型执行函数

时间:2014-02-06 12:27:09

标签: java web weblogic oracle-adf

在我的应用程序(Fusion Web)中存在来自Oracle DB的ViewObject。 我创建了java类并构建了一个特定的方法(makeUniqueSearchByDate(String))来处理数据。 此方法出现在“数据控件”中,我可以拖动到“视图”并用作任何其他函数。当我尝试在“bean”中使用它时(而不是直接拖动):

public void setDate(ActionEvent actionEvent) {
        ApplicationModule appMod =
            Configuration.createRootApplicationModule("com.svr.model.AppModule", "AppModuleLocal");

        ViewModelosByDataImpl fo = (ViewModelosByDataImpl) appMod.findViewObject("ViewModelosByData1");
String dateV = "07-01-2013";
fo.makeUniqueSearchByDate(dateV);
}

此代码对表格没有影响。谁能明白为什么? 顺便说一句,该程序不会抛出任何异常。只是不起作用。表格保持不变。但是,如果我使用按钮,通过“拖放”自动生成该功能正常运行。我知道我应该学习ADF,但不幸的是我没有时间。

1 个答案:

答案 0 :(得分:0)

我认为在将VO编写的方法作为Client接口公开之后,需要在页面的pageDef文件中创建方法绑定。在创建方法绑定之后,您需要通过绑定层访问bean中的方法,如下所示:

OperationBinding op =((DCBindingContainer)BindingContext.getCurrent()。getCurrentBindingsEntry())。getOperationBinding(“Method Binding”); op.execute();

我认为你用来从bean调用VO方法的方法是不对的。

我认为在调用VO方法之后,你需要在bean中做的另一件事是你需要刷新表/以编程方式执行PPR:

AdfFacesContext adfFacesContext = AdfFacesContext.getCurrentInstance(); adfFacesContext.addPartialTarget(表组件的组件绑定);

您可以尝试将autosubmit设置为true,用于调用action事件的命令按钮,并为命令按钮的table to component id设置部分触发器。

你也可以发布VO方法代码吗? 通过bean执行方法时,是否调用该方法并提交/更新数据?它只是一个表刷新问题?如果您手动刷新页面,是否看到数据更改?