This page (revision-5) was last changed on 23-May-2013 16:16 by Dieter Käppel

This page was created on 01-Aug-2012 08:36 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
5 23-May-2013 16:16 2 KB Dieter Käppel to previous
4 23-May-2013 16:16 1 KB Dieter Käppel to previous | to last
3 05-Dec-2012 12:57 1 KB Dieter Käppel to previous | to last
2 05-Dec-2012 11:21 1 KB Dieter Käppel to previous | to last
1 01-Aug-2012 08:36 422 bytes Dieter Käppel to last

Page References

Incoming links Outgoing links
Richfaces 4 ...nobody

Version management

Difference between version and

At line 1 changed one line
!Skinning
!!!Skinning
At line 16 added 48 lines
!!!Tree
Um die Selection-Events zu bekommen, sind einige Dinge zu beachten:
* Der Tree muss sich in einem Form-Tag befinden
* Das selectionChangeListener-Attribut funktioniert nicht, es muss ein zusätzlicher Tag rich:treeSelectionChangeListener verwendet werden
* Die Keys der TreeNodes können Probleme bereiten, wenn es Integers sind oder Sonderzeichen enthalten
{{{
<h:form id="tree-form">
<rich:tree id="tree" value="#{bean.tree}" selectionType="ajax">
<rich:treeSelectionChangeListener listener="#{bean.changeSelection}"/>
<rich:treeNode>
<h:outputText value="#{node.name}"/>
</rich:treeNode>
</rich:tree>
</h:form>
}}}
{{{
public void changeSelection(TreeSelectionChangeEvent event) {
System.out.println("Selection changed: " + event.getNewSelection());
}
}}}
!!!Fixes
!!Collapsible Sub-Table
In Firefox kommt die Meldung "TypeError: RichFaces.ui.CollapsibleSubTable is not a constructor", im Internet-Explorer kommt es zu nicht lokalisierenden Javascript-Fehlern. Ursache sind fehlende Resourcen, der Fix besteht im manuellen Einbinden:
{{{
<h:outputScript name="collapsible-subtable.js" library="org.richfaces"/>
<h:outputStylesheet name="collapsible-subtable.ecss" library="org.richfaces"/>
}}}
!!AJAX-Errors
Richfaces verbiegt das AJAX-Framework von JSF, vor allem um seinen mehr oder weniger nützlichen AJAX-Queue zu implementieren. Dabei entstehen gravierende Nebenwirkungen, wie zum Beispiel dass keine AJAX-Requests mehr mit einer DOM-Element-Id abgeschickt werden können, nur noch mit dem DOM-Element selbst.
Ein anderes Problem ist das Verschlucken von AJAX-Fehlermeldungen. Richfaces registriert mit jsf.ajax.addOnError(onError) einen eigenen Error-Handler, in dessen Code dann steht "//TODO: what if somebody is going to clear queue on error?". Abhilfe schafft das Registrieren eines weiteren Error-Handlers mit einer sinnvollen Ausgabe:
{{{
<c:if test="#{facesContext.application.projectStage == 'Development'}">
<script type="text/javascript">
jsf.ajax.addOnError(function (data) {
alert(data.description);
});
</script>
</c:if>
}}}