ADF Popup ContentDelivery attribute – ADF Tips

In Adf application we normally used popup.We have one of the property and attribute of popup is contentDelivery .
ContentDelivery attribute of an af:popup component controls the popup initialization time and how does the data get refreshed within the popup. The default content delivery is lazy. This means the content of the popup is not delivered to the client until shown the first time

Good ADF developer should know , when to use what-

immediate — The popup component is added inline within the page when the page is loaded. It does not matter if you do or do not display it, the popup component will always be loaded.

ContentDelivery should be set to immediate if and only if you are absolutely sure that the popup will be invoked at least once. Otherwise you should use the other two values.

Example: If you use a logout logic that needs confirmation than the confirmation popup should be set to immediate.

lazy — The popup component will be loaded (and cached) only when is called for the first time. If you do not explicitly set the ContentDelivery attribute when creating the popup it will implicitly be set to lazy.

This value should be used when dealing with static information(that does not change): warning messages, information messages and so on.

lazyUncached — The popup component will be loaded(but not cached) only when is invoked for the first time; and every time the popup is called it will be reloaded.

This value should be used when dealing with dynamic data.

getting Attribute value from View Object column in ADF

Hi All,

When ever we want to have value of some attribute we can use below code .It work fine in managed and backing bean .
Create a java class and import

 
import oracle.adf.model.BindingContext;
import oracle.adf.model.binding.DCBindingContainer;

import oracle.adf.model.binding.DCIteratorBinding;

and using below code get value of any attribute

 
        BindingContext ctx = BindingContext.getCurrent();
        DCBindingContainer bc = (DCBindingContainer)ctx.getCurrentBindingsEntry();
        DCIteratorBinding iterator = bc.findIteratorBinding("ViewObjectIterator");
        Row r = iterator.getCurrentRow();
        String empNameValue = (String)r.getAttribute("EmpName");


Understanding the JSF Immediate Attribute

As, i am working on my project.I have to use cancel button.So somebody said make immediate attribute to true.There is very common myth among ADF and JSF developers that using Immediate attribute will avoid unnecessary validation in any case. It is not 100% correct. Basically , everyone not very much clear about it. If we don’t use correctly , application can work randomly.Let discuss more about it to have better understanding.

In ADF application we have either

1. input component
2. Command component

You can use the immediate attribute to allow components on the page to be validated in the Apply Request Values phase of the life cycle as opposed to the Process Validations phase:

•Input component- Using immediate on an means that that component’s value is validated before any input components that do not have the immediate attribute set to true. Therefore, if a validation error occurs on an immediate input component, the life cycle moves from the Apply Request Values phase (where the immediate attribute is evaluated) to the render phase, and validation does not run on any “nonimmediate” input components. Additionally, if the new value of an immediate input component is different from the existing value, then a ValueChangeEvent is raised. However, instead of the event being processed during the Process Validations phase, the event is processed at the end of the Apply Request Values phase. Therefore, any ValueChangeListener associated with the immediate input component executes before any command component’s ActionListener (assuming the command component occurs later on the page).


• Command Components-
if set to immediate and the component has an action that
returns a value for navigation, the life cycle proceeds directly to the Render Response
phase. The validation and model update phases are skipped. A Cancel button is an example of when this would be used