<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.2.1" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">

<channel>
	<title>JSF / ADF Faces For Dummies</title>
	<link>http://www.radio21g.com/faces</link>
	<description>ADF Faces without Databinding</description>
	<pubDate>Thu, 02 Aug 2007 08:58:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/AdfFaces" type="application/rss+xml" /><item>
		<title>ADF Faces for Dummies - 2.3: Create Your Hello World App (Continued)</title>
		<link>http://www.radio21g.com/faces/2007/08/01/adf-faces-for-dummies-23-create-your-hello-world-app-continued/</link>
		<comments>http://www.radio21g.com/faces/2007/08/01/adf-faces-for-dummies-23-create-your-hello-world-app-continued/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 06:34:59 +0000</pubDate>
		<dc:creator>Roosevelt Lai</dc:creator>
		
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.radio21g.com/faces/2007/08/01/adf-faces-for-dummies-23-create-your-hello-world-app-continued/</guid>
		<description><![CDATA[Last session, we have added a simple login form to our JSF page. In this session, we will add some business logic to the form to make it work like a real login page.
Let&#8217;s bring out our JDev and open the login.jspx JSF page we created in last session. On the page, there is a [...]]]></description>
			<content:encoded><![CDATA[<p>Last session, we have added a simple login form to our JSF page. In this session, we will add some business logic to the form to make it work like a real login page.</p>
<li>Let&#8217;s bring out our JDev and open the login.jspx JSF page we created in last session. On the page, there is a &#8220;Login&#8221; button.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-27.png" bordercolor="black" border="1" /></p>
<p>Now this button has no real business connected with it, we will try adding some user id/password checking function to this button.To add a function to a button, we can <strong>Doubleclick</strong> on the button to bring out a &#8220;Bind Action Property&#8221; diaglog box.</p>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-28.png" /><br />
In JSF (also in ADF Faces), the &#8220;CommandButton&#8221; component has a property called &#8220;Action&#8221;. The value of this &#8220;Action&#8221; property will point a method in a class. When the button on the JSF page is clicked, this method will be called by the JSF (ADF Faces) framework.The &#8220;Bind Action Property&#8221; dialog box is just used to specify which class and method will be put in the &#8220;Action&#8221; property of the button and be invoked when the button clicked. (Method Binding)</p>
<p>First, we will specify the &#8220;Class&#8221;.  Click the &#8220;New&#8230;&#8221; button to create a &#8220;Managed Bean&#8221;.</p>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-29.png" /><br />
A &#8220;Managed Bean&#8221; is just a normal Java Bean. The reason it&#8217;s &#8220;managed&#8221; is that the bean is instantiated by the JSF(ADF Faces) framework, instead of by your program. And it&#8217;s instantiated when the user clicks on the button. A normal Java Bean has to be declared as a &#8220;Managed Bean&#8221; in a xml file called faces-config.xml under /WEB-INF. We will talk about this xml file later.</p>
<p>The &#8220;Create Managed Bean&#8221; dialog box allows you declare a Java Class as a managed bean. If the Java Class is not there yet, Jdev can generate the .java source file fo you.</p>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-30.png" /><br />
Here in our HelloWorld Login page, we will create a managed bean called &#8220;login_backingbean&#8221; with its class file as: &#8220;com.dummies.LoginBackingBean&#8221;.</p>
<p>In the &#8220;Scope&#8221; property, we will just leave it as &#8220;request&#8221;. This means that when the ADF Faces framework instantiate the bean, the bean will be put into the current HTTP Request object as an attribute. So when the current request is finished, the bean will be destroyed with the Request object. If you want to continute using the bean after this request, you will then define the &#8220;Scope&#8221; as &#8220;session&#8221;.</p>
<p>Click &#8220;OK&#8221;, you are back to the &#8220;Bind Action Proerty&#8221; dialog box,</p>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-31.png" /><br />
A Java class has been created for you. In the new Java class, a method called &#8220;loginButton_action()&#8221; is also created. It&#8217;s obvious this method is used as the action method for the Login button. So you select the &#8220;loginButton_action&#8221; in the &#8220;Method&#8221; dropdown box.</p>
<p>Click &#8220;OK&#8221;, then you finished declaring the action for the Login button. Let&#8217;s see what we got here:</p>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-32.png" bordercolor="black" border="1" /><br />
We can see that a new Java class file &#8220;LoginBackingBean&#8221; has been created. In this class, there is also a method generated &#8220;loginButton_action()&#8221;. This is the button-click event handling method. But nothing is here yet.</p>
<li>To validate the inputted user id and pasword, we will add some logic into the &#8220;LoginBackingBean&#8221;.First, let&#8217;s add two String fields to receive the input from the JSF page. Create 2 String fields by inputing this hightlight code into the &#8220;LoginBackingBean&#8221;. They are used to store the userid and password from the JSF page.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-33.png" bordercolor="black" border="1" /></p>
<p>Since LoginBackingBean is a Java bean, we also need to create the setter and getter methods for the 2 fields. JDev has the code generation function which we can use to generate the accessor methods.We just right-click in the editor. In the context menu, choose &#8220;Generate Accessor&#8221;.<br />
<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-34.png" bordercolor="black" border="1" /></p>
<p>In the popup dialog box choose the userName and password accessor methods to generate.<br />
<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-35.png" bordercolor="black" border="1" /></p>
<p>As the result, the following accessor methods are generated in the &#8220;LoginBackingBean&#8221; class.<br />
<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-36.png" bordercolor="black" border="1" /></p>
<li>Next, we are moving into the hardcore of this session. We will code the logic to validate user&#8217;s id and password. This logic will be placed in the &#8220;loginButton_action()&#8221; method of the &#8220;LoginBackingBean&#8221; class. So when user click the Login button to login, this piece of code will check to see if the user&#8217;s id and password is valid.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-37.png" bordercolor="black" border="1" /></p>
<p>Here is the code for validating user:</p>
<pre class="code_snippet">
FacesMessage msg = null;

if ("dummy".equals(userName) &amp;&amp; "welcome".equals(password))
    msg = new FacesMessage("Welcome dummy, you are in.");
else
    msg = new FacesMessage("Sorry, invalid user and password.");

FacesContext facesContext = FacesContext.getCurrentInstance();

facesContext.addMessage(null, msg);

return null;</pre>
<p>To understand the code, we need to make one assumption here. That is we need to assume that when the program comes into this method, the &#8220;userName&#8221; and &#8220;password&#8221; proerty of LoginBackingBean have already had the value of the user inputted userid and password. (We will come to the part where we make this happen shortly.)</p>
<p>So in this piece of simple code, we hard-coded to check that if the inputted userid is &#8220;dummy&#8221; and passowrd is &#8220;welcome&#8221;. If they are, we will create a welcome message to show to the user later using a FaceMessage class. Otherwise, we will create a invalid-user-password message. Then we save the new FacesMessage instance into the FacesContext instance using the addMessage method of FacesContext. You can think of the FacesContext as the HttpServletRequest object in servlet world. We just use it to pass around objects from controller layer (LoginBackingBean)  to view layer (login.jspx).</p>
<li>Well, we finished the coding for validating user login. But remember we made one assumption on the way: we assume that in the &#8220;loginButton_action()&#8221; method we have user login inputted userid and password already stored in the &#8220;userName&#8221; and &#8220;password&#8221; property of &#8220;LoginBackingBean&#8221;.</li>
<p>But how can we get this to happen in realtime?</p>
<p>Ok, let&#8217;s open the &#8220;login.jspx&#8221; file again.On the &#8220;login.jspx&#8221;, use the mouse pointer to select the &#8220;User&#8221; InputText component. On the right side of the JDev, open the &#8220;Property Inspector&#8221; pane (if it&#8217;s not there, find it under the &#8220;View&#8221; main menu). The &#8220;Property Inspector&#8221; pane lists all the properties available for editing for &#8220;User&#8221; InputText component.<br />
<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-38.png" /><br />
Among all the properties for InputText, there is a &#8220;Value&#8221; property. Change the &#8220;Value&#8221; property to <em>#{login_backingbean.userName}</em>. What this mean is that the InpuText control&#8217;s text (or value) is first put into and later retrieved from the <em>userName </em>attribute (<em>getUserName()/setUserName()</em> methods precisely) of the <em>login_backingbean</em> (LoginBackingBean.java).</p>
<p>We will do the same for the password InputText control. In doing this, we connected the value of the InputText controls on the JSF page on the client-side with attributes from the ManagedBean on the server-side. Thus, when we click the Login button, the user and password we inputted on the Login page will be passed into the <em>LoginBackingBean</em>&#8217;s <em>userName</em> and <em>password</em> attributes. And later, when the control return from ManagedBean to the JSF page, the JSF will use the attributes of <em>LoginBackingBean</em> to display the text in the input boxes.<br />
<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-39.png" /></p>
<li>The last thing left is to show a message in the login.jspx page when user submit the login and the control come back to the JSF page.<br />
Drag&amp;drop the Messages component from the &#8220;ADF Faces Core&#8221; palette onto the header part of the Login.jspx page.<br />
<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-40.png" />ADF Faces Messages is a component for displaying all kind of messages on page. When it&#8217;s rendered, it will check into the current FacesContext to see if there is any FacesMessage instance in it. If so, it will display the FacesMessage in the format you specified. Since we put some messages in the loginButton_action() method, we should expect to see some after login.<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-41.png" /></li>
<li>All right, that&#8217;s all the changes we need to make this time. We can now give a go to our new HelloWorld application.<br />
As usual, Right-click on the login.jspx, choose the &#8220;Run&#8221; menu item.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-42.png" /></p>
<p>The JDev will open Login page in your browser automatically.<br />
<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-43.png" /></p>
<p>First, let&#8217;s try to input a wrong user name and password and submit.<br />
<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-44.png" /></p>
<p>The page return back to itself with the &#8220;Invalidate user name and password&#8221; message, which we added in the LoginBackingBean.java, remember?</p>
<p>Then, try input the &#8220;dummy&#8221; as the user and &#8220;password&#8221; as password and submit.<br />
<img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-45.png" /></p>
<p>The page still return back to itself, but this time with the welcome message. That proves our login code is working correctly.</li>
]]></content:encoded>
			<wfw:commentRss>http://www.radio21g.com/faces/2007/08/01/adf-faces-for-dummies-23-create-your-hello-world-app-continued/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ADF Faces for Dummies - 2.2: Create Your Hello World App (Continued)</title>
		<link>http://www.radio21g.com/faces/2007/07/24/adf-faces-for-dummies-22-create-your-hello-world-app-continued/</link>
		<comments>http://www.radio21g.com/faces/2007/07/24/adf-faces-for-dummies-22-create-your-hello-world-app-continued/#comments</comments>
		<pubDate>Tue, 24 Jul 2007 07:39:26 +0000</pubDate>
		<dc:creator>Roosevelt Lai</dc:creator>
		
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.radio21g.com/faces/2007/07/24/adf-faces-for-dummies-22-create-your-hello-world-app-continued/</guid>
		<description><![CDATA[In the end of the last session, we have created a blank JSF page (.jspx) . In this session, we will add a simple login form to the page and try to test it in the web browser.
JSF programming is about drag&#38;drop. So the first step we need to d is to open the &#8220;Component [...]]]></description>
			<content:encoded><![CDATA[<p>In the end of the last session, we have created a blank JSF page (.jspx) . In this session, we will add a simple login form to the page and try to test it in the web browser.</p>
<li>JSF programming is about drag&amp;drop. So the first step we need to d is to open the &#8220;Component Palette&#8221; on the right side and select the &#8220;ADF Faces Core&#8221; component group from the drop down list. (&#8221;ADF Faces Core&#8221; components are the main components you will be using when you build a ADF Faces application)</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-12.png" height="493" width="596" /></p>
<li>Find the &#8220;OutputFormatted&#8221; components from the list of components under &#8220;ADF Faces Core&#8221;, drag and drop this component onto our blank JSF page. The &#8220;OutputFormatted&#8221; component is used to create some free-text on the page.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-14.png" height="507" width="612" /></p>
<li>Then we change the text in shown by the component by changing its properties in the property pane.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-15.png" height="523" width="633" /></p>
<li>First we change the &#8220;title&#8221; property to &#8220;Login Into Hello World&#8221;, then we expand the &#8220;inlineStyle&#8221; proper to tweak a little bit on the font color and size as show here. The changes will be seen in the WSYIWSG editor immediately.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-16.png" height="523" width="633" /></p>
<li>Next, we will create the login form which includes the user id and password input control and a submit button. To layout these controls on the page, we will use another JSF component - PanelForm.<br />
There are quite a lot of components in JSF and ADF Faces which are called PanelXXXX, like PanelForm, PanelPage, PanelGroup. These components are all used to help the designer layout other visual components, like button or input box, on the JSF page. Remember, JSF programming is more like the traditional Delphi and Java Swing programming, where you create a page layout by using Panels or Canvas components, instead of HTML</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-17.png" height="523" width="633" /></p>
<li>The PanelForm is a layout component which will place its children components in the way we usually see in a HTML form (vertically aligned). After you drag&amp;drop the PanelForm into your page, you will see a box has been created for you. Then, we will drag&amp;drop a InputText component right into the box. The InputText in JSF is a little different from the HTML Input field, it actually goes with a Label in front of the text input box.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-18.png" height="523" width="633" /></p>
<li>Then we need to add another InputText for password. This time we still use drag&amp;drop, but we will not drop it onto the page. I will show you another way to add a component to a page.<br />
On the left side of the editor, you should see a pane window called &#8220;Structure&#8221;. If you cannot see it, you just find it in the &#8220;View&#8221; main menu. The &#8220;Structure&#8221; window gives a hierachy view of the file you are currently editing.<br />
For the login.jspx file, you can see there is already a PanelForm and an InputText in the Structure window. What we will do is drag&amp;drop another InputText into the Structure window right below the first InputText within the PanelForm, so it become another child of PanelForm.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-19.png" height="523" width="633" /></p>
<li>After the drag&amp;drop, you will see another InputText is added. It&#8217;s the same as drop onto the page but it more acurrately controlled.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-20.png" height="523" width="633" /></p>
<li>Then we make some changes to the two InputText&#8217;s properties to change the Label and make the password input hide the actuall text.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-21.png" height="523" width="633" /></p>
<li>Now we have the input fields, what needed next is just a submit button. The button control in ADF Faces is called &#8220;CommandButton&#8221;. We will drag&amp;drop it onto the page. But this time we will drop it in the little rectangle place which says &#8220;footer&#8221;.<br />
The footer is a built-in Facet of the PanelForm. A Facet is nothing but just a placeholder in a component. PanelForm has one Facet called &#8220;footer&#8221;. Anything you put into this &#8220;footer&#8221; will be shown at the bottom of the PanelForm when it&#8217;s rendered at runtime. Many components have built-in Facet, so the developer will know where to put child components inside a complex component so they will look nicely fit.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-22.png" height="523" width="633" /></p>
<li>Now we have the input fields, what needed next is just a submit button. The button control in ADF Faces is called &#8220;CommandButton&#8221;. We will drag&amp;drop it onto the page. But this time we will drop it in the little rectangle place which says &#8220;footer&#8221;.<br />
The footer is a built-in Facet of the PanelForm. A Facet is nothing but just a placeholder in a component. PanelForm has one Facet called &#8220;footer&#8221;. Anything you put into this &#8220;footer&#8221; will be shown at the bottom of the PanelForm when it&#8217;s rendered at runtime. Many components have built-in Facet, so the developer will know where to put child components inside a complex component so they will look nicely fit.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-22.png" height="523" width="633" /></p>
<li>Let&#8217;s change the CommandButton&#8217;s text property.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-24.png" height="523" width="633" /></p>
<li>All right, we are done with the creation of the page for Hello World Login page. Let&#8217;s have a test&#8230;<br />
Right-click on the page, on the context menu choose the &#8220;Run&#8221;. It will start the Jdeveloper embedded OC4J J2EE appserver and open your page&#8217;s URL in the browser.
</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-25.png" height="523" width="633" /></p>
<li>Now you see what you got for the first-cut of your ADF Faces application. Though there is not much logic in the page, you still can see it is already working when you click on the Login button, just the page return to itself after submit.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-26.png" height="523" width="633" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radio21g.com/faces/2007/07/24/adf-faces-for-dummies-22-create-your-hello-world-app-continued/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ADF Faces for Dummies - 2.1: Create Your Hello World App</title>
		<link>http://www.radio21g.com/faces/2007/07/17/adf-faces-for-dummies-2-create-your-hello-world-app/</link>
		<comments>http://www.radio21g.com/faces/2007/07/17/adf-faces-for-dummies-2-create-your-hello-world-app/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 11:50:14 +0000</pubDate>
		<dc:creator>Roosevelt Lai</dc:creator>
		
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.radio21g.com/faces/?p=8</guid>
		<description><![CDATA[Alright, Let the game begin.
In this lesson, you will see how to create a JSF Hello World Login page  using JDeveloper and ADF Faces.
Open you JDeveloper and Create a new Application as below.

In the &#8220;Create Application Dialog&#8221;, set the application&#8217;s properties as the following

The created new &#8220;HelloWorld&#8221; application will look like this. It has [...]]]></description>
			<content:encoded><![CDATA[<p>Alright, Let the game begin.</p>
<p>In this lesson, you will see how to create a JSF Hello World Login page  using JDeveloper and ADF Faces.</p>
<li>Open you JDeveloper and Create a new Application as below.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-1.png" height="482" width="564" /></p>
<li>In the &#8220;Create Application Dialog&#8221;, set the application&#8217;s properties as the following</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-2.png" /></p>
<li>The created new &#8220;HelloWorld&#8221; application will look like this. It has two Projects: &#8220;Model&#8221; and &#8220;ViewController&#8221;, which are automatically created for you by JDev when you choose the Web Application template in last step.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-3.png" height="494" width="577" /></p>
<li>Then we will create a JSF page on the new &#8220;ViewController&#8221; project.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-4.png" /></p>
<li>Choose the JSF JSP for the file type.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-5.png" /></p>
<li>Give the page a new and choose the .jspx file type instead of the .jsp type.  (.jspx is a xml like JSP file type, which is for JSP 2.0 standard)</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-6.png" /></p>
<li>Choose &#8220;Do Not Automatically Expose UI Component In a Managed Bean&#8221;, we will come to that later.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-7.png" /></p>
<li>You need to select the JSP Tag Libraries you will use in your page, so its defination will be added to the JSP page header for you.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-8.png" /></p>
<li>Give it a title.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-9.png" /></p>
<li>Finish it.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-10.png" /></p>
<li>You now finished creating your first JSF page. You can see it in the Application Navigator under the &#8220;Web Content&#8221; folder.</li>
<p><img src="http://www.radio21g.com/blog/user-content/dummies/images/dummies-1-11.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radio21g.com/faces/2007/07/17/adf-faces-for-dummies-2-create-your-hello-world-app/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ADF Faces for Dummies - 1: Install Oracle ADF Faces and get ready to code?</title>
		<link>http://www.radio21g.com/faces/2007/07/02/adf-faces-for-dummies-1-install-oracle-adf-faces-and-get-ready-to-code/</link>
		<comments>http://www.radio21g.com/faces/2007/07/02/adf-faces-for-dummies-1-install-oracle-adf-faces-and-get-ready-to-code/#comments</comments>
		<pubDate>Mon, 02 Jul 2007 10:21:17 +0000</pubDate>
		<dc:creator>Roosevelt Lai</dc:creator>
		
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.radio21g.com/faces/?p=10</guid>
		<description><![CDATA[a) Download 
To create J2EE application using Oracle ADF Faces, you need an IDE called Oracle JDeveloper and nothing else.
Oracle JDeveloper(JDev) is an IDE just like the famous JBuilder (actually it was originated from JBuilde&#8217;s early version). But the difference is that JDeveloper is free. You can download the JDev&#8217;s latest version from Oracle&#8217;s OTN [...]]]></description>
			<content:encoded><![CDATA[<p><strong>a) </strong><u><strong>Download</strong> </u></p>
<p>To create J2EE application using Oracle ADF Faces, you need an IDE called Oracle JDeveloper and nothing else.</p>
<p>Oracle JDeveloper(JDev) is an IDE just like the famous JBuilder (actually it was originated from JBuilde&#8217;s early version). But the difference is that JDeveloper is free. You can download the JDev&#8217;s latest version from Oracle&#8217;s <a href="http://www.oracle.com/technology/software/products/jdev/htdocs/soft10133.html" target="_blank">OTN website</a>.</p>
<p><a href="http://roosevelt.bloggles.info/files/2007/07/otn.JPG" title="Direct link to file"><img src="http://roosevelt.bloggles.info/files/2007/07/otn.JPG" alt="OTN JDeveloper Downoad Page" /></a><br />
<br />
There are 3 flavors you can choose to download: Studio Edition, J2EE Edition, Java Edition. Please choose the J2EE Edition. It includes the ADF libraries and does not overloaded with other Oracle proprietary toolset in the Studio Edition.</p>
<p><strong>b) </strong><u><strong>Install</strong></u></p>
<p>After downloaded the zip file, to install, you need to first unzip the file to a directory you like. Then, &#8230;&#8230; it&#8217;s done.</p>
<p><a href="http://roosevelt.bloggles.info/files/2007/07/folder.JPG" title="Direct link to file"><img src="http://roosevelt.bloggles.info/files/2007/07/folder.JPG" alt="folder.JPG" /></a></p>
<p>You will see a file called &#8220;jdeveloper.exe&#8221; in the unzipped directory, you just doubleclick on that file to launch the JDev for the first time.</p>
<p><a href="http://roosevelt.bloggles.info/files/2007/07/jdev-starter.JPG" title="Direct link to file"><img src="http://roosevelt.bloggles.info/files/2007/07/jdev-starter.JPG" alt="jdev-starter.JPG" /></a></p>
<p>Now, you are all set and we soon move into the real game play in the next session.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.radio21g.com/faces/2007/07/02/adf-faces-for-dummies-1-install-oracle-adf-faces-and-get-ready-to-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ADF Faces for Dummies - 0: What is Oracle ADF Faces?</title>
		<link>http://www.radio21g.com/faces/2007/06/29/adf-faces-for-dummies-0-what-is-oracle-adf-faces/</link>
		<comments>http://www.radio21g.com/faces/2007/06/29/adf-faces-for-dummies-0-what-is-oracle-adf-faces/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 16:39:21 +0000</pubDate>
		<dc:creator>Roosevelt Lai</dc:creator>
		
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.radio21g.com/faces/?p=5</guid>
		<description><![CDATA[1. What is Oracle ADF Faces? What do I use it for?
Oracle ADF Faces is an implementation of standard JavaServer Face (JSF) specification. JSF is a framework designed by SUN for creating a Visual Basic or Borland Delphi like rapid web application development tool.
Generally, you use ADF Faces to rapidly and easily (hopeful) create a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>1. What is Oracle ADF Faces? What do I use it for?</strong><u><strong><br />
</strong></u>Oracle ADF Faces is an implementation of standard JavaServer Face (JSF) specification. JSF is a framework designed by SUN for creating a Visual Basic or Borland Delphi like rapid web application development tool.</p>
<p>Generally, you use ADF Faces to rapidly and easily (hopeful) create a J2EE based web application.</p>
<p><strong><strong>2. Why must I use JSF?</strong></strong></p>
<p>You don’t. There are tons of J2EE framework, like Struts, WebWorks, Tapstry, Spring, etc, all of these are to help you build a web application. JSF or ADF Faces is just one of them.</p>
<p>There are two general differences (or advantages) between JSF/ADF Faces and other frameworks.</p>
<ol>
<li>JSF is a J2EE standard, which means it have more support from major software vendors like SUN, Oracle, BEA…. In this case it may have potentials to live longer than other frameworks.</li>
<li>JSF is trying to bring the web application development experience back to the good old days we enjoyed during the C/S era when we had the Visua Basic, Borland Delphi and PowerBuilder. I believe this is a right path at least for now.</li>
</ol>
<p><strong><strong><strong><strong>3. Why must I use Oracle ADF Faces? What does a Database company have to do with JSF?</strong></strong></strong></strong></p>
<p>ADF Faces is Oracle’s implementation of JSF standard. There are other implementations out there, like MyFaces, ICEFaces and Sun’s reference implementation. ADF Faces is among the best JSF implemenations so far, it owns more 100+ JSF UI/non-UI components which programers can use to create their web app.</p>
<p>Actually Oracle is using the ADF Faces to build their next generation of ERP/CRM systems called Fusion Applications. So ADF Faces is more widely used than many other JSF components.</p>
<h3></h3>
<p><strong><strong><strong><strong>4. How do I learn ADF Faces? Do I need to know JSF first? Is it hard?</strong></strong></strong></strong></p>
<p>Basically, I suggest you learn the JSF before learn the ADF Faces. There are many JSF tutorials you can find using google. <a href="http://www.jsftutorials.net/" target="_blank" class="blines3" title="Link outside of this blog">jsftutorials.net</a> is good place to start with. There are also some good books about JSF, <a href="http://www.amazon.com/JavaServer-Faces-Complete-Reference/dp/0072262400" target="_blank" class="blines3" title="Link outside of this blog">JavaServer Faces: The Complete Reference</a> is a good one. Generally, JSF is a little complicated than Struts.</p>
<p><img src="http://ec1.images-amazon.com/images/I/51ASy4PjwBL._AA240_.jpg" height="240" width="240" /></p>
<p>If you know JSF already, ADF Faces will be just a walk by the lake for you.<br />
<strong>However, in articles on this site I’ll assume you have no experience with JSF. </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radio21g.com/faces/2007/06/29/adf-faces-for-dummies-0-what-is-oracle-adf-faces/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hello World and Why This Blog……</title>
		<link>http://www.radio21g.com/faces/2007/06/29/hello-world%e2%80%a6%e2%80%a6/</link>
		<comments>http://www.radio21g.com/faces/2007/06/29/hello-world%e2%80%a6%e2%80%a6/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 16:38:53 +0000</pubDate>
		<dc:creator>Roosevelt Lai</dc:creator>
		
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://www.radio21g.com/faces/?p=4</guid>
		<description><![CDATA[This is the #1 post of this blog. I’m gonna spend a little time explaining what you will see in this blog in the future.
1. What is this site all about? 
Generally, this purpose of this site is to teach people how to use Oracle ADF Faces framework to create J2EE application.
2. Why Oracle ADF [...]]]></description>
			<content:encoded><![CDATA[<p>This is the #1 post of this blog. I’m gonna spend a little time explaining what you will see in this blog in the future.</p>
<p><strong>1. What is this site all about? </strong></p>
<p>Generally, this purpose of this site is to teach people how to use Oracle ADF Faces framework to create J2EE application.</p>
<p><strong>2. Why Oracle ADF Faces?</strong></p>
<p>First of all, it’s a Oracle product and I’m working for Oracle. &#8216;</p>
<p>Secondly, I do believe a JSF implementation like ADF Faces together with Oracle JDeveloper will move J2EE web app developers a step closer to the Rapid Application Developer (RAD) goal. It will definitly boost the productivity if you know it well.</p>
<p><a href="http://rooseveltlai.files.wordpress.com/2007/06/adf.jpg" target="_blank" class="blines3" title="adf.jpg"><img src="http://rooseveltlai.files.wordpress.com/2007/06/adf.jpg" alt="adf.jpg" /></a></p>
<p><strong>3. Why without Databinding?</strong></p>
<p>If you know Oracle’s ADF product, you will understand that besides ADF Faces, there is another major ingredient in the ADF framework - the ADF Data Binding mechanism. The existance of ADF Data Binding is to enable utimate drag&amp;drop style development when building a data driven application. It will release you from the burden of manually plumbing the UI component with the underlying business service layer and handles the UI events for you automatically.</p>
<p>But the ADF Data Binding is a sword with two sides. It does save you time from writing some event-handling code. On the other hand, it is not like a breeze to learn how to use Data Biniding. What makes the situation more complicated is that the ADF Faces (or the JSF) is also not as easy as some of the old popular frameworks like Struts. You can imagine, what happens when you have to mix the two at the same time, not to mention you have to know the ADF Business Component or EJB which serves as the Business Service Layer as required by the Data Binding.</p>
<p>So this site is determined to devote to the pure ADF Faces  (JSF) way of programming.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.radio21g.com/faces/2007/06/29/hello-world%e2%80%a6%e2%80%a6/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
