ADF Faces provides strong support for Accessibility and 508 Compliance. Most ADF Faces components have attributes that will translate to tags that screen readers can interpret.
For example, <af:input>has an attribute shortDesc for a short description; this translates to an html alt tag, which is readable by most screen readers.
You can find Oracle’s Accessibility guidelines for ADF Faces here: http://www.oracle.com/webapps/online-help/jdeveloper/10.1.3/state?navSetId=_&navId=4&vtTopicFile=jsf_apps/adfcreate/af_aacessible.html&vtTopicId
Oracle ADF Faces 10g: How to pass data between pages
Do you have the need to pass data between pages, e.g. for a new customer signup page flow that spans multiple pages?
In ADF Faces, when you have a form that spans multiple pages, you have options on how to pass and maintain the data between pages, e.g. cache the data in the middle tier, re-write the data into hidden fields on the page, or store the state in session.
Caching and storing data in session have the drawback of not being back-button or new-window safe. Often frameworks have a mechanism to store state in hidden fields on the page and rewrite the state into the next page’s hidden fields; however, ADF Faces does not have this mechanism.
Instead, ADF Faces ships with a cross between hidden fields and session state management where a token (i.e. a unique id) is written to a hidden field on the page and the token is the key to a value in session; this is referred to as “Process Scope”.
Each page has its own copy of the state. If the user clicks the back button to go to a previous page, they will be operating on the same state of the object in session as when that page was originally rendered.
Note—ADF Faces will store up to a set number of pages’ state in session. This value is configurable in the adf-faces.xml file.
More information can be found here:
- http://www.oracle.com/webapps/online-help/jdeveloper/10.1.3?topic=sf_ascopes_html
- http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/devguide/communicatingBetweenPages.html
- http://www.oracle.com/webapps/online-help/jdeveloper/10.1.3/state/content/navId.4/navSetId._/vtTopicFile.jsf_apps%7Cadfcreate%7Caf_apageflowscope~html/
- http://www.oracle.com/webapps/online-help/jdeveloper/10.1.3/state/content/navId.4/navSetId._/vtTopicFile.jsf_apps%7Cadfcreate%7Caf_asetactionlistenerandprocess%7Ehtml/
- http://www.oracle.com/webapps/online-help/jdeveloper/10.1.3/state/content/navId.4/navSetId._/vtTopicFile.jsf_apps%7Cadfcreate%7Caf_adialogparameters%7Ehtml/
Did you know ADF Faces allows you to submit only part of a page? This can be useful when you have a search box on a page and only want to submit that one component when the user clicks the search button.
The ADF Faces af:subForm component represents an independently submittable region of a page. When used within an af:form tag or within an JSF HTML h:form tag, af:subForm lets you control which components should be validated and pushed into the model without having to use multiple forms on a page.
See the following for more information on ADF subForms.
Undeploying a single application in Oracle Application Server is pretty straightforward. However, I had a scenario where I needed to undeploy many human tasks (since each of them is deployed as an application in OracleAS) and undeploying them one-by-one was becoming painful. I recalled finding a place to undeploy mutiple applications, but couldn’t remember it exactly. After digging a little, I figured it out again and wanted to write it here in case it can help you (or me in the likely event that I forget again).
From the Cluster Topology page of Enterprise Manager Application Server Control, you get a hierarchical view of your OC4J Instances and their applications. You can click into each to undeploy, but sometimes you want to undeploy multiple applications (like multiple human tasks from your undeployed BPEL processes — since the BPEL Console undeploy does not actually undeploy the human tasks). Here are a list of steps that would allow you to undeploy multiple applications from oracle application server:
- Login to oracle “Application Server Control”
- Scroll to Groups tab
- Select the proper “OC4J Instance”. The instance that contains you deployments.
- Click on the “Applications” tab
This window allows you to start, stop, undeploy or redeploy mutliple applications.