Hi,
I'm a little bit struggling with JSF and the mvc pattern. The requirements for the project I've to develop are that each JSF page has two managed beans, one for the model and the other as a controller. This means the model bean contains all the params for say textboxes, comboboxes etc... and the controller bean does the actions e.g. when a button is pressed.
I'm not so convinced about this design yet nevertheless I tried to realise it, but it seems to me that the controller bean which contains the logic for the buttons causes some problems as when I click a button I get an error message that a class could not be instantiated.
Now I have several questions, what do you think about this design, how do you realise the separation of model and actions and finally why doesn't the bean get instantiated?
Thanks
Simon
Some code:
<managed-bean>
<managed-bean-name>uebersichtController</managed-bean-name>
<managed-bean-class>de.vkb.zvd.facesbeans.UebersichtController</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>model</property-name>
<property-class>de.vkb.zvd.facesbeans.UebersichtModel</property-class>
<value></value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>uebersichtModel</managed-bean-name>
<managed-bean-class>de.vkb.zvd.facesbeans.UebersichtModel</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
public class UebersichtController {
private UebersichtModel model;
private Vorgang currentVorgang;
public UebersichtModel getModel() {
return model;
}
public void setModel(UebersichtModel model) {
this.model = model;
}
}
public class UebersichtModel {
private List<Vorgang> vorgaenge;
private List<UebersichtVermittler> vermittler;
private List<UebersichtKunde> kunden;
private HtmlDataTableEx vorgaengeTable;
private Vorgang selectedVorgang;
public UebersichtModel() {
vorgaenge = new ArrayList<Vorgang>();
vermittler = new ArrayList<UebersichtVermittler>();
kunden = new ArrayList<UebersichtKunde>();
}
public List<Vorgang> getVorgaenge() {
return vorgaenge;
}
public void setVorgaenge(List<Vorgang> vorgaenge) {
this.vorgaenge = vorgaenge;
}
public List<UebersichtVermittler> getVermittler() {
return vermittler;
}
public void setVermittler(List<UebersichtVermittler> vermittler) {
this.vermittler = vermittler;
}
public List<UebersichtKunde> getKunden() {
return kunden;
}
public void setKunden(List<UebersichtKunde> kunden) {
this.kunden = kunden;
}
public HtmlDataTableEx getVorgaengeTable() {
return vorgaengeTable;
}
public void setVorgaengeTable(HtmlDataTableEx vorgaengeTable) {
this.vorgaengeTable = vorgaengeTable;
}
public Vorgang getSelectedVorgang() {
return selectedVorgang;
}
public void vorgangStatusListener(ValueChangeEvent ve) {
...
}
public void vorgangArtListener(ValueChangeEvent ve) {
}
}