0

逻辑:显示下拉菜单(来自 的数据TABLE_ONE),page1.amx并根据需要从中获取数据的选择TABLE_TWO,然后将检索到的数据渲染到page2.amx. 以下是我尝试过的示例,


ServiceClass.java在我的服务包中创建了服务类并DataControl (ServiceClassDC)为该类创建。

从我的FirstPage.amx我调用服务类方法使用valueChangeListener下拉(下拉值将从数据库中填充,让我们获取TABLE_ONEID)。下面是这个逻辑的一段代码,

第一页.amx

<amx:selectOneChoice value="#{bindings.selectId.inputValue}" label="Select Id" id="soc1"
                         valueChangeListener="#{ServiceClass.callThisMethod}">
      <amx:selectItems value="#{bindings.selectId.items}" id="si1"/> 
</amx:selectOneChoice>

基于使用WHERE条件的选择,我得到了productList包含结果集数据的对象列表。

服务类.java

public void callThisMethod(ValueChangeEvent valueChangeEvent) {
    System.out.println("Selected Value: "+valueChangeEvent.getNewValue());
    String selectedValue = valueChangeEvent.getNewValue().toString();

    ClassMappingDescriptor descriptor = ClassMappingDescriptor.getInstance(TableTwo.class);
    DBPersistenceManager pm = getLocalPersistenceManager();

    try{        
    StringBuffer sql = pm.getSqlSelectFromPart(descriptor);
    sql.append(" WHERE ID='"+selectedValue+"'");
    sql = pm.constructOrderByClause(sql, descriptor);
    ResultSet set = pm.executeSqlSelect(sql.toString(), new ArrayList());
    System.out.println("Result set >> "+set);
    List productList = pm.createEntitiesFromResultSet(set, (List) descriptor.getAttributeMappingsDirect());
    System.out.println("productList "+productList);
    } catch(Exception exp){
        System.out.println("Exception : "+exp);
    }

}

现在,我想将 List 对象数据显示(productList)SecondPage.amx屏幕中。这个怎么做?

如果您想了解有关此的更多详细信息,请在下面发表评论。

4

1 回答 1

1

您需要List productList在公共方法中公开您的方法(因此提供 get 方法)并在数据控件中公开该方法。然后,您可以将其拖放到您的页面上。

例子:

 public Product[] getProductArray() {  
     return (Product[]) productList.toArray();
 }

请注意,这是一个使用 Java 1.4 的 MAF 版本的示例!

于 2015-10-05T07:24:06.110 回答