2014-02-24 49 views
0

如果我在我的Datatable中選擇一行,我總是如下:2014年2月24日上午1時01分42秒com.sun.faces.context.PartialViewContextImpl processPartial Information:java.lang .IllegalArgumentException:參數類型不匹配。問題是ajax標籤。如果我刪除它,我得到也不例外java.lang.IllegalArgumentException ajax row select

我使用primefaces 4.0和JSF 2.1

<p:dataTable id="inboxTable" var="task_toUser" value="#{taskboxBean.taskboxInboxList}" paginator="true" 
      widgetVar="inboxTable" rows="5" selection="#{taskboxBean.selectedTaskbox}" 
      selectionMode="single" rowKey="#{task_toUser.ID}" emptyMessage="" paginatorPosition="bottom" 
      > 

      <p:ajax event="rowSelect" update=":contentForm, :postForm:tabViewPosts:trashTable, :postForm:tabViewPosts:inboxTable, :postForm:tabViewPosts:sentTable " 
       listener="#{taskboxBean.onTaskboxRowSelect}" /> 


      <p:column headerText="Post" filterBy="FROM_USER.FIRST_NAME" filterMatchMode="contains"> 
       <h:outputText 
        value="#{task_toUser.TASKBOX.FROM_USER.FIRST_NAME} #{task_toUser.TASKBOX.FROM_USER.LAST_NAME} (#{task_toUser.TASKBOX.FROM_USER.EMAIL})" /> 


       <p:commandButton disabled="true" style="float:right" icon="ui-icon-mail-closed" rendered="#{!task_toUser.IS_SEEN}"/> 
       <p:commandButton disabled="true" style="float:right" icon="ui-icon-mail-open" rendered="#{task_toUser.IS_SEEN}"/> 
       <br/> 
       <h:outputText value="#{task_toUser.TASKBOX.TASKTYPE.NAME} " /> 
       <h:outputText style="font-weight: bold; " value="#{task_toUser.TASKBOX.TASKBOX_SUPPLIER.NEW_SUPPLIER.NAME}"/> 
       <br /> 
       <h:outputText value="#{task_toUser.TASKBOX.CREATE_TIMESTAMP}" /> 
      </p:column> 

     </p:dataTable> 
+0

也許它期待着ajax屬性中的其他東西。你想在這個事件上做什麼? – Leo

+0

你有p:ajax在行選擇事件上設置,但是監聽器在哪裏?聽衆是應該執行的動作,但你錯過了它。您可以添加偵聽器,也可以從代碼中刪除此標記。 – Makky

+0

我編輯了代碼見上面。我添加一個listner和一個更新屬性 – bvb1909

回答

1

我解決了這個問題。問題是ArrayList來自另一個類型,而不是選擇,xhtml自動轉換它。