Back in 2009, I already a made
a blogpost about some handy code which you can use in your ADF Web Application. You can say this blogspot is part 2 and here I will show you the code, I use most in my own managed Beans.
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(); |
No comments:
Post a Comment