scollableDateTable binding issues
nathandennis Dec 30, 2008 5:09 PMim having trouble with the scrollable data table binding attribute.
seam 2.1.0sp1
richfaces snap 3.3.0 > 12/19
jboss 4.2.2
javax.el.ELException: /maintenance/include/lookup.xhtml @46,62 binding="#{phyEditAction.stable}": java.lang.IllegalArgumentException: argument type mismatch at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:101) at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:237) ... 94 more Caused by: java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at javax.el.BeanELResolver.setValue(BeanELResolver.java:108) at javax.el.CompositeELResolver.setValue(CompositeELResolver.java:68) at com.sun.faces.el.FacesCompositeELResolver.setValue(FacesCompositeELResolver.java:93) at org.jboss.el.parser.AstPropertySuffix.setValue(AstPropertySuffix.java:73) at org.jboss.el.parser.AstValue.setValue(AstValue.java:84) at org.jboss.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:249) at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:93) ... 95 more
backin bean
import org.richfaces.component.UIScrollableDataTable; import org.richfaces.model.selection.SimpleSelection; ........ @Stateful @Name("phyEditAction") @Scope(ScopeType.CONVERSATION) public class PhyEditAction implements PhyEditLocal{ private SimpleSelection selection = new SimpleSelection(); private UIScrollableDataTable stable; ........... public SimpleSelection getSelection() { return selection; } public void setSelection(SimpleSelection selection) { this.selection = selection; } public String takeSelection() { this.phy = null; Iterator<Object> iterator = getSelection().getKeys(); while (iterator.hasNext()){ Object key = iterator.next(); stable.setRowKey(key); if (stable.isRowAvailable() && this.phy ==null) { this.phy = ((Phy) stable.getRowData()); } } selectPhy(null); return null; } public UIScrollableDataTable getStable() { return stable; } public void setStable(UIScrollableDataTable stable) { this.stable = stable; }
there is also an interface for this bean.
<rich:modalPanel id="lookupmp" autosized="false" height="400" width="320" top="20" style="padding:0px;height:"> <f:facet name="header" style="height:20px;"> <h:outputText value="#{messages['maintenance.phy.phylook.mptitle']}" /> </f:facet> <f:facet name="controls"> <h:graphicImage value="/img/error.gif" style="cursor:pointer;border:0px;" onclick="Richfaces.hideModalPanel('lookupmp');"/> </f:facet> <rich:panel style="text-align:left;"> <s:div id="lookupcontainer" style="position:relative;top:0px;left:0px;"> <s:div rendered="#{phyEditAction.phySearchsw}" style="padding:0px;z-index:300;"> <h:form> <rich:scrollableDataTable frozenColCount="1" height="300px" width="300px" id="phyList" rows="20" columnClasses="colMnm,colName" value="#{phyEditAction.phySearchList}" var="p" first="0" rowKeyVar="rkv" binding="#{phyEditAction.stable}" selection="#{phyEditAction.selection}"> <rich:column id="make"> <f:facet name="header"><h:outputText styleClass="headerText" value="#{messages['maintenance.phy.label.phyMnm']}" /></f:facet> <h:outputText value="#{p.phyMnm}" /> </rich:column> <rich:column id="model"> <f:facet name="header"><h:outputText styleClass="headerText" value="#{messages['maintenance.phy.label.phyName']}" /></f:facet> <h:outputText value="#{p.phyName}" /> </rich:column> </rich:scrollableDataTable> <br/> <a:commandButton value="Show Current Selection" reRender="mainpanel" action="#{phyEditAction.takeSelection}" > <s:conversationId/> <rich:componentControl for="lookupmp" operation="hide" event="oncomplete"/> </a:commandButton> </h:form> </s:div> </s:div> </rich:panel> </rich:modalPanel>
i have read everything i could find in the doc.. got the example code out of the trunk.. im new to creating jsf components dynamically... i must be missing something. i even tried using a UIComponent as the backing because some something i read in the doc then casting it to the scrollable table.. didnt work.
any help would be greatly appreciated.