Seam Pros, Newbie needs help. DataTable
indyjones Aug 26, 2007 3:08 PMSeam: 2.0.0BETA1
JBoss: 4.2.0
Facelets
I am having problems with a very simple datatable.
Here is my code....
Bean
@Name("usermanager")
@Stateful
@Scope(SESSION)
@Restrict("#{identity.loggedIn}")
public class UserManager implements UserManagerInterface {
@In
private User user;
@In
private Session inetworkDatabase;
@Logger
Log log;
@DataModelSelection("users")
@Out(required = false)
private User selectedUser;
@DataModel("users")
private List<User> users;
@Factory("users")
public List<User> getUsers() {
List<User> retUsers = null;
try{
if(user != null){
Criteria criteria = inetworkDatabase.createCriteria(User.class);
retUsers = criteria.list();
}else{
}
}catch(Exception e){
}
return retUsers;
}
public void editUser(){
log.info("**************************************** ");
}
@Remove
public void destroy() { }
}
XHTML
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.ajax4jsf.org/rich"
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
template="layout/template.xhtml">
<ui:define name="body">
<a4j:form ajaxSubmit="true">
<rich:dataTable id="users"
rows="10"
onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
var="usr"
value="#{users}">
<f:facet name="header">
<rich:columnGroup>
<rich:column><h:outputText value="Edit User" /></rich:column>
<rich:column><h:outputText value="User Name" /></rich:column>
<rich:column><h:outputText value="First Name" /></rich:column>
<rich:column><h:outputText value="Middle Name" /></rich:column>
<rich:column><h:outputText value="Last Name" /></rich:column>
</rich:columnGroup>
</f:facet>
<rich:column>
<s:link action="#{usermanager.editUser}" value="#{usr.id}"/>
</rich:column>
<rich:column><h:outputText value="#{usr.username}" /></rich:column>
<rich:column><h:outputText value="#{usr.firstname}" /></rich:column>
<rich:column><h:outputText value="#{usr.middlename}" /></rich:column>
<rich:column><h:outputText value="#{usr.lastname}" /></rich:column>
</rich:dataTable>
<rich:spacer height="20" />
<rich:datascroller for="users" maxPages="50" />
<rich:tabPanel switchType="client">
<rich:tab label="Information">
<h:panelGrid columns="2">
<h:outputText value="First Name" />
<h:inputText value="x" id="fname" />
<h:outputText value="Middle Name" />
<h:inputText value="b" id="mname" />
<h:outputText value="Last Name" />
<h:inputText value="c" id="lname" />
</h:panelGrid>
</rich:tab>
<rich:tab label="Roles">
this is where the users roles are listed
</rich:tab>
</rich:tabPanel>
</a4j:form>
</ui:define>
</ui:composition>
Every thing is ok at startup...
But when i click on the slink, i get this...
14:56:56,515 ERROR [SeamPhaseListener] uncaught exception javax.el.ELException: javax.ejb.EJBException: java.lang.ClassCastException: java.util.ArrayList cannot be cast to javax.faces.model.DataModel
Why is that?
I know this is a pretty easy question, my apologies, but any help would be really appreciated...
Thanks
indy