This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Soft Skills and have John Sonmez on-line!
See this thread for details.
The moose likes JSF and the fly likes MyFaces Data Table didn't work Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » JSF
Bookmark "MyFaces Data Table didn Watch "MyFaces Data Table didn New topic
Author

MyFaces Data Table didn't work

Mike London
Ranch Hand

Joined: Jul 12, 2002
Posts: 1083
I have a Data Table that's currently mapped to a ResultSet.

It displays data, but I'm not able to interact with it so I changed it to a MyFaces Data Table to see if that would allow me to click a check box and have that data saved in the updateable ResultSet (so I can determine which rows the user clicked).

To change the Core Data Table to a My Faces data table, I added the required line:

<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

to the top of the JSP.

I added the myfaces-all.jar into the common/lib folder of Tomcat 5.0.29.

Then I changed the "h:" to "t:" on the data table opening and closing tags.

The result?

Now, no data is displayed. No errors, no logs entries, nothing.

Is there a simple trick to display a simple ResultSet with a MyFaces data table?

Couldn't find any examples on setting up a MyFaces Data Table (the one on the Apache site is for illusturation only and doesn't include any specifics needed).

Thanks to anyone in advance!!!

-- Mike
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15300
    
    6

Well, there are a few MyFaces specific entries that go in the web.xml. Download the examples zip and run the simple.war and then look at it's web.xml to see what you need.

As far as all your ResultSet issues, to be honest, I haven't dealt with straight JDBC for a very long time. It gets very tedious once you start using something like iBatis or Hibernate along with Spring.

Here is what I would suggest you do. Get away from binding to ResultSet's. Move all the data out of the ResultSet and into some sort of Pojo/Bean/whatever. Put those objects in a List and bind your data table to that list of objects. Then, when one of those objects' data changes, submit that update to the database in your data access layer. You don't have to change any of your JDBC stuff. Just add another layer, a model layer that isn't JDBC (ResultSets).

Tonight, when I get home from work, and if you ask nicely, , I'll whip out a quick example of what I am talking about and send you the entire project so you can see what I am talking about. If you need it that is. Let me know.


GenRocket - Experts at Building Test Data
Mike London
Ranch Hand

Joined: Jul 12, 2002
Posts: 1083
Pretty please!!! <s>

I think I know what you're talking about, but I'm not sure if I understand how to implement the listners and such.

I look forward to seeing your code.

Thanks very very much in advance!!!

-- Mike
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15300
    
    6

Mike, where do you want me to send the code?
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16305
    
  21

Originally posted by Gregg Bolinger:
Mike, where do you want me to send the code?


Could you post it here (or if it's too big, provide a URL)? JavaRanch is for sharing!


Customer surveys are for companies who didn't pay proper attention to begin with.
Mike London
Ranch Hand

Joined: Jul 12, 2002
Posts: 1083
I'll be glad to post Gregg's code in a day or two once I complete this project or Gregg can do in the meantime. <s>

What I did to fix the problems I was having was to, as Gregg suggested, dump the ArrayList as the Data List's data source and instead just use the ResultSet to create an ArrayList (I changed the DataModel to ListDataModel and little things like that).

Now, all is working great!

My project is almost done.

Thanks for all the fantastic help!!!

-- Mike
Mike London
Ranch Hand

Joined: Jul 12, 2002
Posts: 1083
Oops,

In my reply above I meant to say ...dump the *ResultSet* for the data source for the data table and just use the ResultSet to populate an ArrayList for the Data Table.

Sorry 'bout that.

-- Mike
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15300
    
    6

Here is what I sent Mike.









Mike London
Ranch Hand

Joined: Jul 12, 2002
Posts: 1083
This is great.

I tried to add column sorting and got stuck. There is example code at:

http://www.irian.at/myfaces/sortTable.jsp.source

where they have things like this defined in the data table definition:
<t ataTable...
sortColumn="#{list.sort}"
sortAscending="#{list.ascending}"
preserveDataModel="true"
preserveSort="true">

then, an actual column:

<h:column>
<f:facet name="header">
<t:commandSortHeader columnName="type" arrow="true">
<h utputText value="#{example_messages['sort_cartype']}" </t:commandSortHeader>
</f:facet>
<h utputText value="#{car.type}" />
<f:facet name="footer">
<h utputText id="ftr1" value="(footer col1)" />
</f:facet>
</h:column>

What I think I'm missing is what needs to actually be in the "list" mentioned in the table definition above.

I currently have the table tags appearing, but since I don't have this "cars.list" implemented, nothing is sorting.

Is it simple to get the sorting working?

Look forward to hearing how to do this.

Thanks.

-- Mike
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15300
    
    6

If you take the example I provided "list" would == "personList" and it's up to you to provide a sort()/ascending() method to sort your data in the list. It doesn't have to be called sort/ascending. You could call it sortThisCrap(). It works the same as calling an actionListener or action method.

You *might* have to give those methods a string and boolean argument though for MyFaces sorting. I am not 100% sure about that. I haven't really messed much with sorting. I downloaded the example simple.war source code and have been looking at that.
[ December 28, 2005: Message edited by: Gregg Bolinger ]
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: MyFaces Data Table didn't work