2013-06-12 78 views
0

如何获得在ADF完成这个简单的任务行 -如何得到我想要的ADF

基于一些参数,我想行从视图对象编程进行检索。我不知道如何做到这一点。如果我没有使用ADF,那么我的业务方法会有如下的查询,然后在对象上的表单中返回我想要的任何详细信息。
* SELECT * FROM abcTable其中abccolumn =参数1; *

参数1是从一个JSF页面的输入。我捕获该输入并基于该输入,我需要查询另一个数据库表(它将以ADF中的View对象的形式)来检索其他细节并填充jsf页面中的其他组件。我如何完成这项任务。我试图获取视图对象的实例,但我似乎没有找到任何方法,我可以根据where子句检索我想要的有限行。 executeQuery方法不会返回任何东西(奇怪的情况)。

回答

0

绑定是参数在你的bean的变量。比方说,你想 搜索从值和输入文本:

页:

<af:inputText id="it8" binding="#{pageFlowScope.<YOURBEAN>.inputSearchBox}"/> 

在你的bean

private RichInputText inputSearchBox; 

public void setInputSearchBox(RichInputText inputSearchBox) { 
    this.inputSearchBox= inputSearchBox; 
} 

public RichInputText getInputSearchBox() { 
    return inputSearchBox; 
} 

请在bean的方法是会做搜索:

页:

<af:commandButton text="search" id="cb6" actionListener="#{pageFlowScope.<YOURBEAN>.search}"/> 

在豆

public void search(ActionEvent actionEvent) { 
} 

在这种方法中,你需要从AppModuleImpl得到的ViewObject:

BindingContext bindingContext = BindingContext.getCurrent(); 
DCDataControl dc =bindingContext.findDataControl("YOURAPPMODULEDATACONTROL"); 
AppModuleImpl appM = (AppModuleImpl)dc.getDataProvider(); 
ViewObjectImpl vo = appM.getYourVO(); 

创建并应用于视图标准viewObject与您在输入中输入的文本:

String searchValue = null; 
//get the value from the search field 
if (inputSearchBox.getValue() != null) { 
    searchValue = inputSearchBox.getValue().toString(); 
} 
ViewCriteria vc     = vo.createViewCriteria(); 
ViewCriteriaRow vcRow   = vc.createViewCriteriaRow(); 

vcRow.setAttribute("Field you want to search by", searchValue); 
vc.addRow(vcRow); 
vo.applyViewCriteria(vc); 
vo.executeQuery(); 

现在ViewObject被您的搜索值过滤。 如果你想通过的结果,并从该行你发现你需要做一个行迭代器,通过它迭代并保存您在某些变量所需要的值保存一些VO值:

RowSetIterator rsi = vo.getRowSetIterator(); 
String valueToGet = null; 
while (rsi.hasNext()){ 
    Row r = rsi.next(); 
    valueToGet = (String)r.getAttribute("<WHAT ATTRIBUTE YOU WANT TO GET>"); 
}