You can override prepareSession() in your custom Application Module class to do session-specific initializations, such as invoking a stored procedure to initialize the database state for the specific user, store user information, set application-wide configuration parameters based on the user and so on. The framework invokes prepareSession() when the Application Module is first checked-out from the Application Module pool for a new user session.
Example:
@Override
protected void prepareSession(Session session) {
super.prepareSession(session);
// do session-specific initializations
}
Context:
Application Module Implementation Class
Bits of code related to Oracle's Application Development Framework (ADF). Some of the posts in this blog may seem elementary. They are. Nevertheless, you will be amazed to find out how many beginner ADF practitioners are struggling with basic concepts and sample code. Hopefully they will find some here.
Saturday, June 26, 2010
Wednesday, June 23, 2010
Bit #20 - Overriding beforeCommit() to execute custom code before commit
Override the Application Module beforeCommit() method in your custom Application Module implementation class to execute any custom code that depends on data already posted to the database. Such code may include - but not limited to - validations done in the database via a stored procedure for example. The framework calls this method after doDML() which means that posted data are available but not yet committed.
Example:
// in your Application Module Implementation class
@Override
public void beforeCommit(TransactionEvent transactionEvent) {
// call some stored procedure here
super.beforeCommit(transactionEvent);
}
Context:
Application Module Implementation Class
Example:
// in your Application Module Implementation class
@Override
public void beforeCommit(TransactionEvent transactionEvent) {
// call some stored procedure here
super.beforeCommit(transactionEvent);
}
Context:
Application Module Implementation Class
Saturday, June 12, 2010
Bit #19 - Downloading a file
Use an af:fileDownloadActionListener Rich Faces component to download data from the server to a client machine. Add the listener inside the component that will initiate the download, an af:commandButton for example, and specify the content type and the name of the file. Also specify a method in a backing bean that will be called to perform the download. In the backing bean method get the formated data to be saved from the model and use the supplied OutputStream to write the data.
Example:
In .jsf page:
<af:commandbutton id="buttonid" " text="Download" ...
<af:filedownloadactionlistener contenttype="application/octet-stream"
method="#{backingBean.doDownload}" filename="defaultFilename.txt"/>
</af:commandButton>
Example:
In .jsf page:
<af:commandbutton id="buttonid" " text="Download" ...
<af:filedownloadactionlistener contenttype="application/octet-stream"
method="#{backingBean.doDownload}" filename="defaultFilename.txt"/>
</af:commandButton>
In backing bean:
public void doDownload(FacesContext facesContext, OutputStream outputStream) {
// write the neccessary code to get the download data from the Model
String data = getDownloadData();
// save to the output stream
try {
OutputStreamWriter writer = new OutputStreamWriter(outputStream,"UTF-8");
writer.write(data);
writer.close();
outputStream.close();
} catch (IOException e) {
// handle I/O exceptions
}
}
Context:
JSF Page
Backing Bean
public void doDownload(FacesContext facesContext, OutputStream outputStream) {
// write the neccessary code to get the download data from the Model
String data = getDownloadData();
// save to the output stream
try {
OutputStreamWriter writer = new OutputStreamWriter(outputStream,"UTF-8");
writer.write(data);
writer.close();
outputStream.close();
} catch (IOException e) {
// handle I/O exceptions
}
}
Context:
JSF Page
Backing Bean
Subscribe to:
Posts (Atom)