aspose file tools*
The moose likes JSF and the fly likes How to use database row values to generate additional columns in datatable Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSF
Bookmark "How to use database row values to generate additional columns in datatable" Watch "How to use database row values to generate additional columns in datatable" New topic
Author

How to use database row values to generate additional columns in datatable

Adam Kronicki
Ranch Hand

Joined: Sep 01, 2009
Posts: 68
I have a problem which should be easy but I have trouble with finding the solution. I have a database that I want to present in a datatable. However I need additional columns that get more information about the current row. For example - the database has a set of people with id numbers. What I need is to display the Name, Last Name, ID (all columns of database), but then I want to display the address which is in a different REST webservice and to get it I need to send the ID (from database). I hope I have described it clearly but just in case I will point out:

-my database has 3 columns: name, las name, id number
-I need to add a 4th column to my datatable with address
-to get the address I need to send the id number to a rest webservice

The only solution I was able to find so far i to add all database elements to a list or some container and then use it inside a bean. But that is unacceptable since the database is very big. There must be a simpler way but it seems that I can't form an adequate question for google to get the proper results :> Can any one give some advice?
sandeep Kumar
Ranch Hand

Joined: Sep 19, 2007
Posts: 41
Hi Adam,

I think If you are able to generate XML out of all the data you need, you may apply an XSLT transformer to display it on JSP.

Thanks,
Sandeep.
Cesar Loachamin
Ranch Hand

Joined: Dec 25, 2010
Posts: 90

Hi Adam

I think you can solve you problem if you use a Component System event, exactly the preRenderComponent, you can use this event for every component in the address colum, you can pass to it the id number as <f:attribute> of the component, and in the listener of the preRenderComponent event you can get the id number attribute and call your RestWebService, The problem is it only fuction with JSF 2.0 because since this version there are the System Events.

Let me now if you're using JSF 2.0 to give you an example.

Regards
Cesar


When a dream is ending because to come true - OCPJP 6,7. OCE JPA EE6. MCTS
Adam Kronicki
Ranch Hand

Joined: Sep 01, 2009
Posts: 68
Thank you Cesar,

Unfortunately I am using JSF 1.2 so far. But maybe I will swtich to 2.0
But any way it would be great to have an example you mentioned so if it is not a problem please post it. I would prefer to stick to 1.2 but if it is impossible or much harder than maybe I will have to use 2.0. Do you know how to solve this in 1.2?
Cesar Loachamin
Ranch Hand

Joined: Dec 25, 2010
Posts: 90

Hi Adam.

Of course there is no problem, here is the code that I said to use with JSF 2.0.
And the System component listenerYou can improve this code implementing a cache it could be a Map that insert every address (put) when the data of table changes and get from the map with every request, but here you have an idea.

I'm not sure How Can I help you in JSF 1.2, May you post the code that you use to call the database data, maybe this could give an idea.

Regards
Cesar

Adam Kronicki
Ranch Hand

Joined: Sep 01, 2009
Posts: 68
For now the DB is down and being modified. It turned out that I may need hibernate for connecting with it. But thank you for the advice with 2.0, maybe in the end I'll decide on that, but all other projects are 1.2 so thats undesirable for me :/
 
 
subject: How to use database row values to generate additional columns in datatable