I start with FacesContext class, with this class you can use to find a JSF Component, change the Locale, get the ELContext, Add a message to your view and get the ExternalContext
// FacesContext
FacesContext facesCtx = FacesContext.getCurrentInstance();
// find UIComponent
UIComponent input = facesCtx.getViewRoot().findComponent("f1");
// change the locale
facesCtx.getViewRoot().setLocale( Locale.ENGLISH);
// el expression
Application app = facesCtx.getApplication();
ExpressionFactory elFactory = app.getExpressionFactory();
ELContext elContext = facesCtx.getELContext();
ValueExpression valueExp = elFactory.createValueExpression(elContext,
"#{xxxx}",
Object.class);
Object result = valueExp.getValue(elContext);
// add a message
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_WARN,
"header",
"detail");
facesCtx.addMessage(input.getClientId(facesCtx), msg);
// ExternalContext
ExternalContext ectx = facesCtx.getExternalContext();
The ExternalContext class, with this you can retrieve all the java init & context (web.xml) parameters, the Request & Session parameters and your web application url.// ExternalContext ExternalContext ectx = facesCtx.getExternalContext(); // all the java init parameters Map<String, Object> initParamsVar = ectx.getInitParameterMap(); Map<String, String> requestParamsVar = ectx.getRequestParameterMap(); Map<String, Object> sessionParamsVar = ectx.getSessionMap(); // web application context root String contextPath = ectx.getRequestContextPath();AdfFacesContext class, you can use this class for Partial Page Rendering ( PPR), get the PageFlowScope and ViewScope variables
// AdfFacesContext AdfFacesContext adfFacesCtx = AdfFacesContext.getCurrentInstance(); // PPR adfFacesCtx.addPartialTarget(input); // get the PageFlowScope Params Map<String, Object> scopePageFlowScopeVar= adfFacesCtx.getPageFlowScope(); // get the viewScope Params Map<String, Object> scopeViewScopeVar= adfFacesCtx.getViewScope();ADFContext class, with this you can get all the memory scopes variables even the application scope variables, ELContext and the SecurityContext.
// ADFContext
ADFContext adfCtx = ADFContext.getCurrent();
// Get the scope variables
Map<String, Object> applicationVar2 = adfCtx.getApplicationScope();
Map<String, Object> pageParamsVar2 = adfCtx.getPageFlowScope();
Map<String, String> requestParamsVar2 = adfCtx.getRequestScope();
Map<String, Object> sessionParamsVar2 = adfCtx.getSessionScope();
// el expression
ELContext elContext2 = adfCtx.getELContext();
ExpressionFactory elFactory2 = adfCtx.getExpressionFactory();
ValueExpression valueExp2 = elFactory2.createValueExpression(elContext2,
"#{xxxx}",
Object.class);
Object result2 = valueExp2.getValue(elContext2);
// Security
SecurityContext secCntx = adfCtx.getSecurityContext();
SecurityContext class, retrieve the current user and its roles.// Security SecurityContext secCntx = adfCtx.getSecurityContext(); String user = secCntx.getUserName(); String[] roles = secCntx.getUserRoles();BindingContext, BindingContainer and DCBindingContainer class. These classes are well known when you want to retrieve the ADF pagedef objects.
BindingContext bc = BindingContext.getCurrent(); BindingContainer bcon = bc.getCurrentBindingsEntry(); List<AttributeBinding> attr = bcon.getAttributeBindings(); List<OperationBinding> oper = bcon.getOperationBindings(); List<ControlBinding> ctrl = bcon.getControlBindings(); DCBindingContainer dcbcon = (DCBindingContainer) bc.getCurrentBindingsEntry(); List<AttributeBinding> attr2 = dcbcon.getAttributeBindings(); List<OperationBinding> oper2 = dcbcon.getOperationBindings(); List<ControlBinding> ctrl2 = dcbcon.getControlBindings(); List iters = dcbcon.getIterBindingList(); List exec = dcbcon.getExecutableBindings();The last class is ControllerContext, which you can use to retrieve the exceptions
ControllerContext cc = ControllerContext.getInstance(); // get the exception Exception exp = cc.getCurrentViewPort().getExceptionData();
{ 0 comments... Views All / Send Comment! }
Post a Comment