有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在adf中初始化ViewObject的一行?

我是ADF的新手,我正在尝试在我的ADF Fusion Web应用程序中向现有VO添加一行。我使用了AppModule的Java类来实现这一点

基本上,我在我的任务流中有一个方法调用,在这里我调用下面提到的AM java类的方法,如下所示:

    public void assetReturnInitialization(){

        System.out.println("Yellow!");

        getAstAssetReturnsVO().clearCache();
        System.out.println("clearCache Done!");        

        Row row = getAstAssetReturnsVO().createRow(); 
        row.setAttribute("Stat", "test");
        getAstAssetReturnsVO().insertRow(row);
        System.out.println("getAstAssetReturnsVO Done!");                    

        getAstAssetReturnsVO().setCurrentRow(row);
        System.out.println("setCurrentRow Done!");        

        getAstAssetReturnsVO().executeQuery();         
        System.out.println("executeQuery Done!");        

        return ;
    }

它似乎工作得很好,换句话说,页面开始时好像调用了CreateInsert方法,这正是我想要的,但初始值不是绑定到VO的组件中的设置

我甚至尝试调用setCurrent方法,但没有成功

任何帮助都是非常感谢的

谢谢——

M


共 (1) 个答案

  1. # 1 楼答案

    首先尝试更新绑定到VO的组件,方法是执行

    AdfFacesContext.getCurrentInstance().addPartialTarget(component)
    

    除了使用VO方法,您还可以尝试调用绑定到页面的操作,例如:

    dc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
    if (dc != null) {
        OperationBinding ob = dc.getOperationBinding("CreateInsertMyTable");
        if (ob != null)
          ob.execute();
    

    ps这应该从ViewController项目中完成