The markup doesn't have any sort of logic/iteration capabilities like the extra taglibs in JSP (i.e. <c:forEach var="${model.Person}"><c:out>${person.name}</c:forEach>) so you are stuck doing any dynamic aspects of the UI in pure Java (unless you are supposed to be using <fx:script> for this, of which there is little-to-no documentation/examples/etc). This makes arranging the associated classes difficult because you then have view-specific logic in the Controller (i.e. for each complexItem--create a node graph representing a complexItem; add to list;). It seems like that type of stuff belongs in the "view" class. What happens if complexItem is a custom control specified in FXML. What class is supposed to handle the onMouseClicked event when the user clicks on complexItem. The controller class that backs complexItem or the controller class that first displayed several complexItems in a list? Are you supposed to pass the event up the chain of controllers, each knowing about it's parent?
I just can't wrap my head around this design and how it can be used to create a proper MV* application with a clean design. FXML fundamentally breaks controllers to me by exposing the UI-specific widgets. It seems like there should be a separate View class that backs the FXML. Especially in cases where you need to "finish" the view because whatever you want to do can't be expressed in FXML (like use half the ControlsFX controls). Then you want a separate controller class to handle updating the model (and passing it to the view to update in the case of Passive View or updating the properties in the case of Supervising Controller) and handling behavioral events. This doesn't work though, because FXML and the associated RAD tooling forces you to use the one and only fx:controller specified class.
I want to like JavaFX, I really do, but the lack of attention in this area is mind boggling. I've read through tons of blog posts and it seems like there are tons of questions/debates but little answers/resolutions. I even bought the two Apress books on JavaFX8 and neither one address design patterns whatsoever other than a small blurb or two and a reference to afterburner and dolphin something or other. It seems no one has proven out a solid design with lots of nested views/controllers/presenters/viewmodels...I don't even know what term to use anymore because it is so confusing.