在我的应用程序(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,但不幸的是我没有时间。
答案 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执行方法时,是否调用该方法并提交/更新数据?它只是一个表刷新问题?如果您手动刷新页面,是否看到数据更改?