Probleme mit h:selectOneRadio

bluer

Aktives Mitglied
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:
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>
Mein ControllerBean hat folgende Form:
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().");
        }
    }
...
}
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!!!
 

JimPanse

Bekanntes Mitglied
Hi Leute,


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().");
}
}
...
}
[/code]
Du fragst aber das Label ab und nicht:
Java:
 event.getNewValue();

Greetz
 

bluer

Aktives Mitglied
Das Problem war, dass newValue gleich null war. Habe das Problem aber mittlerweile gelöst, nur leider vergessen das hier zu markieren. Sorry!
Lösung: HTML-Code:
HTML:
<h:selectOneRadio value="#{userController.selectOneRadio}"
                                                     disabled="#{userController.succeed}"
                                                      layout="lineDirection"
                                                      immediate="true">
                                        <f:selectItems value="#{userController.authoritiesMap}"/>
                                        <a4j:support event="onclick"  reRender="additionalinfos" ajaxSingle="true" />
                                    </h:selectOneRadio>
Java-Code:
Java:
public void setSelectOneRadio( String selectOneRadio) {
        this.selectOneRadio = selectOneRadio;
        if( !this.authority.equals(this.selectOneRadio))
            if( this.selectOneRadio.equals("Admin") ||this.selectOneRadio.equals("Berater")){
                this.authority = this.selectOneRadio;
                this.user.setCustomer(null);
                this.user.setConsultant(new Consultant());
            }else{
                this.authority = this.selectOneRadio;
                this.user.setCustomer(new Customer());
                this.user.setConsultant(null);
            }
    }

    public String getSelectOneRadio() { return this.selectOneRadio; }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Probleme mit einem AJAX-Call in einem dynamischen Webprojekt Web Tier 15
M JSF Probleme bei Navigation mit Verzeichnisswechsel Web Tier 2
W JSF Probleme mit Data Table Web Tier 8
W JSF Probleme mit Zugriff zur Managed Bean Web Tier 11
G Probleme mit Java + Tomcat | Cannot switch on a value of type String for source level below 1.7 Web Tier 8
F JSF Probleme mit OverlayPanel Web Tier 0
H Frameset durch Tabelle ersetzten - Probleme mit jsp:include Web Tier 3
xehpuk JSF URL-Encoding-Probleme bei <h:link> (Mojarra) Web Tier 4
M ejb @Remote macht probleme Web Tier 10
S JSF SelectOneMenu - Probleme mit AJAX Web Tier 6
W Probleme mit Expression language ? Web Tier 13
P JSF Datenbank Probleme (Limit, Wiederholung) Web Tier 8
J JSF JavaScript Probleme zwischen Tomahawk und Tiles!? Web Tier 2
T DWR - Probleme mit Konfiguration Web Tier 13
W JSF MyFaces Tomahawk Probleme Web Tier 4
G Probleme mit EclipseLink und Java.util.Date Web Tier 3
S JSF Probleme beim redirect im ExceptionHandler Web Tier 2
P JSF 1.2 Navigation probleme Web Tier 2
D Probleme beim installieren von WebBeans Web Tier 2
D Probleme mit Tomcat Web Tier 3
M Tomcat 6 Umlaut Probleme Web Tier 2
D Seam Example Probleme Web Tier 2
C Probleme mit JSPs in Unterverzeichnissen Web Tier 4
A [PrimeFaces] dataTable mit paginator Probleme Web Tier 2
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
0 JSF: css einbinden - Probleme Web Tier 2
M iframe probleme Web Tier 2
K [GWT] Probleme beim asynchronen Methodenaufruf mit GWT-RPC Web Tier 8
B Probleme mit RichFaces Web Tier 2
O struts2 - Probleme mit parametrisierten URLs Web Tier 5
E Probleme mit GWT & MySQL Web Tier 3
G Probleme mit Ajax Login (jsp) Web Tier 5
S Tomcat / Eclipse Probleme Web Tier 2
B Probleme mit <jsp:include page=""/> und Laufzeit Web Tier 7
P Zurück-Button des Browsers macht Probleme Web Tier 9
O Struts2: Probleme mit Links aus Packages raus Web Tier 9
A JSF+Glassfish: Probleme mit Managed Bean Web Tier 2
S Probleme mit den Nav_rules und HTML code Web Tier 2
D Probleme mit ServletRequest Web Tier 14
G Probleme mit Tomcat Web Tier 14
E RichFaces 3.2.1 Probleme Web Tier 4
W JSTL macht Probleme Web Tier 6
W JavaBeans class="" macht Probleme Web Tier 2
A Time-Out Probleme Web Tier 21
B Probleme mit Marquee Tag Web Tier 3
G JSF selectOneRadio-/selectManyCheckBox-Items gruppieren Web Tier 10
F JSF (JavaServer Faces) - Spaltengestaltung: selectOneRadio Feat. selectItem Web Tier 6

Ähnliche Java Themen

Neue Themen


Oben