Hi Leute,
ich habe folgendes Problem. Bei einer Webanwendung die gerade schreibe sollen Nutzer angelegt werden können. Es gibt verschiedene Arten von Benutzer, wie z.B. Admin, Consultant, Customer usw. Jede Benutzerart hat verschiedene Daten. Die Consultanteingabe erfordert z.B. die Eingabe vin Vor- und Zunamen und die Customereingabe z.B. einen Firmennamen. Die Radiobutton habe ich wie folgt implementiert:
Mein ControllerBean hat folgende Form:
Wenn das Modalpanel mit den RadioButton geöffnet wird ist auch Kunde ausgewählt, jedoch sobald ich den Wert ändere oder überhaupt auf einen RadioButton klicke öffnet er zwar die Methode, übergibt aber jedes Mal den Wert null als newValue. Bei Anlegen klappt auch alles. D.h. er legt alle RadioButtons an und setz auch die disabled, die disabled sein sollen. Bloß warum übergibt er beim onchange-event bzw. dem ValueChangeListener immer die Wert null???
Vielen Dank für eure Hilfe!!!
ich habe folgendes Problem. Bei einer Webanwendung die gerade schreibe sollen Nutzer angelegt werden können. Es gibt verschiedene Arten von Benutzer, wie z.B. Admin, Consultant, Customer usw. Jede Benutzerart hat verschiedene Daten. Die Consultanteingabe erfordert z.B. die Eingabe vin Vor- und Zunamen und die Customereingabe z.B. einen Firmennamen. Die Radiobutton habe ich wie folgt implementiert:
HTML:
<h:selectOneRadio value="#{userListController.selectOneRadio}"
layout="lineDirection"
valueChangeListener="#{userListController.authorityChange}">
<f:selectItems value="#{userListController.authoritiesMap}" var="authority"/>
<a4j:support event="onchange" reRender="edituserpanel">
<f:setPropertyActionListener target="#{userListController.authority}"
value="#{userListController.selectOneRadio}"/>
</a4j:support>
</h:selectOneRadio>
Java:
@Controller(value "userListController")
public class UserListController implements ActionListener {
...
private String authority;
private String selectOneRadio;
private List<SelectItem> authoritiesMap;
...
public void init(){
...
authoritiesMap = new ArrayList<SelectItem>();
this.messageController = new MessageController();
for (Role role : Arrays.asList(Role.values())) {
String value = messageController.getMessage("user_role_"+ role.toString());
SelectItem selectItem = new SelectItem(value,value);
if( ((String)selectItem.getValue()).equals("Anbieter") || ((String)selectItem.getValue()).equals("Besucher"))
selectItem.setDisabled(true);
authoritiesMap.add(selectItem);
}
this.selectOneRadio = "Kunde";
...
}
public void setAuthority( String authority) { this.authority = authority; }
public void authorityChange(ValueChangeEvent event){
try{
HtmlSelectOneRadio radio = (HtmlSelectOneRadio)event.getComponent();
this.authority = radio.getLabel();
}catch(Exception e){
System.out.println(e.getMessage()+" at authorityChange().");
}
}
...
}
Vielen Dank für eure Hilfe!!!