Correcting Failures to Display Data (continued)
Fixing Render Value Errors Before Submit
During the prepareRender phase of the ADF life cycle, the bindings determine the data to display, and properties on the bindings determine the conditions in which to display the data. When the Web page is rendered the first time, each EL expression that points to a binding gets resolved by the BindingContainer instance for that page.
Based on the expression appropriate values such as format, isEnabled, and isViewable, the data value for a binding is returned from BindingContainer. If the binding is unable to return the data, a JBO exception is thrown.
To debug the binding resolution for the binding container, perform the following steps:
1. In the oracle.jbo.uicli.binding.JUCtrlValueBinding class, set a breakpoint in getInputValue() and step into the method.
2. If getInputValue() returns an error, pause processing and look for the binding name in the Data window.
3. Continue stepping into getInputValue(), and look for a return value in the Data window that you expect for the current row that this binding represents.
When the binding that produced the exception is identified, check that the <bindings> element in the page definition file specifies the correct attribute settings.
In case of submit, again the life cycle first looks up and prepares the BindingContainer instance. If the life cycle finds a state token that was persisted for this BindingContainer, it asks the BindingContainer to process this state token.
Processing the state token restores the variable values that were saved out in the previous render. If you need to debug this processing, set breakpoints in DCIteratorBinding.processFormToken() and DCIteratorBinding.buildFormToken(). After this, all posts are applied to the bindings through setInputValue() on the value bindings.