Following are the Some code which is very usefull when working in oracle ADF and JSF.Please go through
// print the roles of the current user for ( String role : ADFContext.getCurrent().getSecurityContext().getUserRoles() ) { System.out.println("role "+role); } // get the ADF security context and test if the user has the role users SecurityContext sec = ADFContext.getCurrent().getSecurityContext(); if ( sec.isUserInRole("users") ) { } // is the user valid public boolean isAuthenticated() { return ADFContext.getCurrent().getSecurityContext().isAuthenticated(); } // return the user public String getCurrentUser() { return ADFContext.getCurrent().getSecurityContext().getUserName(); } // get the binding container BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry(); // get an ADF attributevalue from the ADF page definitions AttributeBinding attr = (AttributeBinding)bindings.getControlBinding("test"); attr.setInputValue("test"); // get an Action or MethodAction OperationBinding method = bindings.getOperationBinding("methodAction"); method.execute(); List errors = method.getErrors(); method = bindings.getOperationBinding("methodAction"); Map paramsMap = method.getParamsMap(); paramsMap.put("param","value") ; method.execute(); // Get the data from an ADF tree or table DCBindingContainer dcBindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); FacesCtrlHierBinding treeData = (FacesCtrlHierBinding)bc.getControlBinding("tree"); Row[] rows = treeData.getAllRowsInRange(); // Get a attribute value of the current row of iterator DCIteratorBinding iterBind= (DCIteratorBinding)dcBindings.get("testIterator"); String attribute = (String)iterBind.getCurrentRow().getAttribute("field1"); // Get the error String error = iterBind.getError().getMessage(); // refresh the iterator bindings.refreshControl(); iterBind.executeQuery(); iterBind.refresh(DCIteratorBinding.RANGESIZE_UNLIMITED); // Get all the rows of a iterator Row[] rows = iterBind.getAllRowsInRange(); TestData dataRow = null; for (Row row : rows) { dataRow = (TestData)((DCDataRow)row).getDataProvider(); } // Get the current row of a iterator , a different way FacesContext ctx = FacesContext.getCurrentInstance(); ExpressionFactory ef = ctx.getApplication().getExpressionFactory(); ValueExpression ve = ef.createValueExpression(ctx.getELContext(), "#{bindings.testIter.currentRow.dataProvider}", TestHead.class); TestHead test = (TestHead)ve.getValue(ctx.getELContext()); // Get a session bean FacesContext ctx = FacesContext.getCurrentInstance(); ExpressionFactory ef = ctx.getApplication().getExpressionFactory(); ValueExpression ve = ef.createValueExpression(ctx.getELContext(), "#{testSessionBean}", TestSession.class); TestSession test = (TestSession)ve.getValue(ctx.getELContext()); // main jsf page DCBindingContainer dc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); // taskflow binding DCTaskFlowBinding tf = (DCTaskFlowBinding)dc.findExecutableBinding("dynamicRegion1"); // pagedef of a page fragment JUFormBinding form = (JUFormBinding) tf.findExecutableBinding("regions_employee_regionPageDef"); // handle to binding container of the region. DCBindingContainer dcRegion = form; // return a methodexpression like a control flow case action or ADF pagedef action private MethodExpression getMethodExpression(String name) { Class [] argtypes = new Class[1]; argtypes[0] = ActionEvent.class; FacesContext facesCtx = FacesContext.getCurrentInstance(); Application app = facesCtx.getApplication(); ExpressionFactory elFactory = app.getExpressionFactory(); ELContext elContext = facesCtx.getELContext(); return elFactory.createMethodExpression(elContext,name,null,argtypes); } // get a value private ValueExpression getValueExpression(String name) { FacesContext facesCtx = FacesContext.getCurrentInstance(); Application app = facesCtx.getApplication(); ExpressionFactory elFactory = app.getExpressionFactory(); ELContext elContext = facesCtx.getELContext(); return elFactory.createValueExpression(elContext, name, Object.class); } // an example how to use this RichInputText input = new RichInputText(); input.setValueExpression("value",getValueExpression("#{bindings."+item+".inputValue}")); input.setValueExpression("label",getValueExpression("#{bindings."+item+".hints.label}")); input.setId(item); panelForm.getChildren().add(input); // catch an exception and show it in the jsf page catch(Exception e) { FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), ""); FacesContext.getCurrentInstance().addMessage(null, msg); } FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_WARN, msgHead , msgDetail); facesContext.addMessage(uiComponent.getClientId(facesContext), msg); // reset all the child uicomponents private void resetValueInputItems(AdfFacesContext adfFacesContext, UIComponent component){ List items = component.getChildren(); for ( UIComponent item : items ) { resetValueInputItems(adfFacesContext,item); if ( item instanceof RichInputText ) { RichInputText input = (RichInputText)item; if ( !input.isDisabled() ) { input.resetValue() ; adfFacesContext.addPartialTarget(input); }; } else if ( item instanceof RichInputDate ) { RichInputDate input = (RichInputDate)item; if ( !input.isDisabled() ) { input.resetValue() ; adfFacesContext.addPartialTarget(input); }; } } } // redirect to a other url ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext(); HttpServletResponse response = (HttpServletResponse)ectx.getResponse(); String url = ectx.getRequestContextPath()+"/adfAuthentication?logout=true&end_url=/faces/start.jspx"; try { response.sendRedirect(url); } catch (Exception ex) { ex.printStackTrace(); } // PPR refresh a jsf component AdfFacesContext.getCurrentInstance().addPartialTarget(UIComponent); // find a jsf component private UIComponent getUIComponent(String name) { FacesContext facesCtx = FacesContext.getCurrentInstance(); return facesCtx.getViewRoot().findComponent(name) ; } // get the adf bc application module private OEServiceImpl getAm(){ FacesContext fc = FacesContext.getCurrentInstance(); Application app = fc.getApplication(); ExpressionFactory elFactory = app.getExpressionFactory(); ELContext elContext = fc.getELContext(); ValueExpression valueExp = elFactory.createValueExpression(elContext, "#{data.OEServiceDataControl.dataProvider}", Object.class); return (OEServiceImpl)valueExp.getValue(elContext); } // change the locale Locale newLocale = new Locale(this.language); FacesContext context = FacesContext.getCurrentInstance(); context.getViewRoot().setLocale(newLocale); // get the stacktrace of a not handled exception private ControllerContext cc = ControllerContext.getInstance(); public String getStacktrace() { if ( cc.getCurrentViewPort().getExceptionData()!=null ) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); cc.getCurrentViewPort().getExceptionData().printStackTrace(pw); return sw.toString(); } return null; } // get the selected rows from a table component RowKeySet selection = resultTable.getSelectedRowKeys(); Object[] keys = selection.toArray(); List receivers = new ArrayList (keys.length); for ( Object key : keys ) { User user = modelFriends.get((Integer)key); } // get selected Rows of a table 2 for (Object facesRowKey : table.getSelectedRowKeys()) { table.setRowKey(facesRowKey); Object o = table.getRowData(); JUCtrlHierNodeBinding rowData = (JUCtrlHierNodeBinding)o; Row row = rowData.getRow(); Test testRow = (Test)((DCDataRow)row).getDataProvider() ; }
Read more-http://tamanmohamed.blogspot.com/2011/08/adf-jsf-some-handy-code-for-backing.html