ICEfaces: DataTable und binding-Attribut

cuchulainn

Mitglied
Hallo alle zusammen,

also ich habe folgendes Problem. In meiner Applikation gibt es eine jspx-Seite mit einer DataTable. Spalten sind zum Beispiel "Titel" und "Datum". Wenn der Benutzer auf einen Titel klickt, soll er auf eine weitere Seite umgeleitet werden, auf der der gesamte Artikel zu sehen ist. Also eigentlich nichts ungewöhnliches.

Ich realisiere das ganze mit einem CommandLink in der Tabelle, der einen ActionListener und natürlich eine action hat. In meiner Bean gibt es ein Attribut mit einer HTMLDataTable, die mit dem binding-Attribut an die Tabelle auf der Seite gebunden ist.

Hier ist der Code meiner Tabelle und der ersten Spalte.

Code:
 <ice:dataTable id="dataList"
 			   border="1"
 			   value="#{newsListPortlet.newsList}"
 			   var="row"
 			   sortColumn="#{newsListPortlet.sortColumn}"
       			   sortAscending="#{newsListPortlet.ascending}"
       			   columnClasses="tableRow" 
 			   binding="#{newsListPortlet.dataTable}">
 	<!--  ID -->
 	<ice:column>
 
     			<f:facet name="header">
              		<ice:outputText value="Titel"/>
       		</f:facet>
 		<ice:commandLink value="#{row.title}"  
 						 actionListener="#{newsListPortlet.toNewsArticle}"
 						 action="newsDetails"/>
 	</ice:column>

Im ICEfaces-Forum habe ich gelesen, dass man das folgende in die web.xml einfügen sollte, wenn man binding verwendet:

Code:
<context-param>
 		<param-name>com.icesoft.faces.standardRequestScope</param-name>
 		<param-value>true</param-value>
</context-param>

Wenn ich auf einen Titel klicke, gelange ich auf die Seite mit dem Artikel. Dort gibt es eine Schaltfläche "Zurück zur Liste". Wenn ich die anklicke, geschieht etwas seltsames. Dann bekomme ich die Exception, dass es eine doppelte ID für die DataTable gäbe: " duplicate component id". Aber ich verstehe nicht, warum das geschieht.

Dann habe ich den Scope der Bean auf "Request" gesetzt. Wenn werden der ActionListener wie auch die Action des CommandLink nicht mehr aufgerufen, obwohl sie vorher einwandfrei funktioniert haben.

Weiß jemand, woran das liegen könnte?

Viele Grüße,

Christopher
 

Neue Beiträge

Zurück