|
just another regularban.info web blog |
| MEMBERS: | Passing Parameters In A Data Table Using JSF
Some working knowledge of J2EE or JSF is assumed for this article. Like some of you I've been frustrated with this technology known as JSF or Java Server Faces. There are several different flavors out there that are built on the shoulders of JSF. For instance Oracle's ADF (Application Development Framework). Oracle ADF Faces Components is a set of over a 100 JSF components that let you build a richer user interface for your Java EE applications. Oracle ADF Faces also includes many of the framework features most needed by JSF developers today. That is great, and in many ways it will make life easier to develop in a JSF environment. Some items you will find available in these "add on" packages have a real benefit. For instance, as of the date of this article, I was very surprised that a File Upload is a feature still not implemented in JSF in respect to using natural jsf tags. There are ways to accomplish this task in JSF but they are not native JSF approaches. The process is a "no brainer" in just about every other framework available today, including asp.net. Another simple task (I thought) was having a data table present the results of a query in an editable format. Possibly to update a user record or shopping cart. After working in other technologies it was very efficient to return a result set to a data table object and let that object take care of some of the trivial behaviors and characteristics of the table itself. When I started exploring JSF I was frequently and at every turn becoming more and more frustrated in trying to duplicate some of the most basic of processes similar to managing records through data tables. There are not a whole lot of resources out there yet on JSF although it is growing steadily, and I found that all too often the resources that I was finding on the internet either didn't apply to the more simple tasks or the information was just completely wrong. One example of that was that it was stated in one article I read that you cannot use command buttons inside of a JSF data table. The recommendation was to use JSF hyperlinks instead when trying to perform an action from a data table due to a bug in the framework that prevented command button actions to fire if the button resided inside of a data table. At first I thought "you've got to be kidding me"! Then I remembered that I've been finding a fair amount of "bogus" information in regards to JSF development so I decided to do further research and discovered that information to be less than accurate as well. I simply had to find a way to populate a data table through a result set and get a command button to fire an action and pass all of the data in the data table to the backing bean to update the record. Multiple command buttons would exist as well as hidden fields pertaining to id numbers and so forth. Pretty basic stuff and we've all done it before with relative ease. It turned out that the solution was in fact a simple one. "Binding". You've heard about it and read about it. But this approach was something a little different as far as I could find. Many of the blogs and articles that I read dealt with passing the values as parameters and following the steps to define the parameters in faces.config files etc., then retrieving the parameters in a backing bean. Processing the passed data required another set of procedures to utilize mapping to each of the field parameters passed and then processing could begin. That seemed like a whole heck of a lot to me just to retrieve form data. Then it occurred to me that I should be able to "bind" a text field component on a page to a backing bean. Once it is bound then all I have to do is extract the data. And that's all there is to it. My query returned results and pre-populated a data table including text fields with the values of the query pre-populated in the text fields. Each one of those text fields was bound to a "HtmlInputText" type in my backing bean. It was not a String type like other approaches define. Doing that does require you to map parameters and populate that String variable through your set methods once the form is submitted. What I found is that if I bind my text field to a property of text field type that it solved my problem of passing values from a data table, and I didn't have to define parameter fields anywhere in any xml file. Now that I had that figured that out I needed to figure out how to get the value of that property that I've bound my form field to, well why not getValue()? I personally hadn't seen any examples online or in books for retrieving the value from a form binding it to the type of form element it was and simply use the getValue() to pull out the value of the object. Used like this getParameterFromForm().getValue(). Let me clarify that I am NOT saying that trying this approach isn't documented anywhere, I find it hard to believe that I've had some stroke of genius that no one has had before in the world of java, especially since I'm coming from .NET and ColdFusion. After doing that I no longer had any problems passing form data to my backing bean. I was able to dynamically populate data tables with any number of records including any number of command buttons within that data table and I didn't have to concern myself with remembering to define parameters in any other areas of the application. So put simply you can bind your form fields to properties of the same type in your backing bean, and then extract the value of that object using getValue() if you prefer over utilizing parameter string mapping and similar approaches for processing form data. I found it to be easier and less time consuming which has costs associated to it as well.
Beta - A Programming Language
BETA is a pure object oriented programming language developed by Scandinavian School in System Development, Nordic Universities. This was released after a series of enhancements of their first object oriented language SimulaI which was a simulation language. Soon it was generalized into Simula67 which had the object oriented framework, and worked on the concepts of class, sub-class, virtual functions etc. This was enhanced by another object oriented language Delta that worked for system description; this meant it could express predicate logic and state changes. This was a non-executable effort and thus did not qualify as a language. So it was decided to design a programming language Gamma that works as Delta but is executable. Eventually, Gamma was never made, rather Beta was made. While Beta was being made, it was realized that Beta was much more powerful than what Gamma would be or ever could be. Beta is a programming language like C++. Currently, BETA is available on UNIX workstations, on PowerPC Macintosh and on Intel-based PCs. BETA has an optimum balance between compile time checking and run time checking. The type cast checking is done at compile time, however, for the entire set of type check and type conversion to be done at compile time requires a lot of time and thus increases the complexity of a program. Thus, an optimum balance has been made. BETA is a logical description of the language. It works on the concepts of class, sub-class, virtual functions etc. It also contains transient variables, ones whose scope is program execution, and persistent variables, those whose values are retained in the disk space and are available at the time of next execution.
A Call to Action for Your Site
Every website has a reason for existing in the Internet. There's a purpose behind every one of them. Whether it's to sell something or to tell the world about something that person thinks is important enough to share, every website has a point to get across. When you think about the rise in the last decade of the internet as an ecommerce tool, it becomes clear that people doing business on the internet need a way to distinguish their goods or service. They need to make clear what it is they want the person clicking onto their site to do. They need what's referred to as a call to action. Consider the statistic that states the average person only stays on one site for an average of nine seconds before they click away if they don't see something that interests them. That means all merchants who ply their wares in cyberspace need to be direct and tell the prospective client what they want them to do. Typically that means buy something. The call to action comes in various forms but once you've seen a few of them they become easily recognizable. The most effective of these calls use short phrases that are not unlike the spoken word. Some examples include: 'Call Now', 'For A Short Time Only', 'Act Now - Offer Expires Soon'. There's something that you'll need to remember about the content of these messages as well. Find a balance in the wording and try not to go too far one way or the other. A call to action that's too conservative will not be effective and you don't want to sound too cheesy either and turn the client off. When to use these calls to action is another consideration to look into. Most of the experts feel they can be used effectively at two different points through a website. The first is at the end of every topic through the content. Here, it's also a good idea if you have an eye to keyword phrases that you know your desired contacts use frequently. So, if you sell marketing software, a good call to action at the bottom of the page might read: 'Why Not Contact Us For Our Free Trial of Marketing Software Today?' There are other considerations where the experts think it's best to use the call to action. One of these is throughout the text in various locations as subtle prompts to get the visitor to convert to customer. There is also a caution against the kind of pop up advertising most of us have seen on the internet. Most of the professionals in the marketing field see them as a rude interruption in the flow for the reader and prospective customer. The call to action is a necessary part of any web marketing campaign. It is a clear concise way of telling the visitor exactly what you want them to do and how you want them to make the transition from visitor to customer.
|
* About Archives
Categories:
Last Updated: |
| regularban.info
is proudly powered by WordPress MU running
on regularban.info.
Create a new blog and join in the fun! Entries (RSS) and Comments (RSS). |