JSF (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt

Diskutiere (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt im Web Tier Forum; Guten Tag, ich sammle jetzt seit einiges Wochen erste Erfahrungen mit Java EE und JSF und bin bereits mitten drinne in meiner Applikation. Ich...

  1. Pommes9485
    Pommes9485 Mitglied
    Guten Tag,

    ich sammle jetzt seit einiges Wochen erste Erfahrungen mit Java EE und JSF und bin bereits mitten drinne in meiner Applikation. Ich habe bereits ein selectOneMenu eingebaut, welches auch funktioniert, bei dem 2. mache ich aber anscheinend irgendwas falsch. Folgendes Szenario:
    Der Nutzer wählt einen Piloten aus, jeder Pilot hat unterschiedliche Slots, für welche dann wieder ein Upgrade ausgewählt werden kann.
    Wenn ich jetzt einen Piloten wähle, erscheint ein Feld mit mehreren SelectOneMenus, welche jeweils einen Slot bedienen.
    Blöderweise wird die value des selectOneMenus eines Slots jedoch nicht geändert. Hier ist mein (hoffentlich) relevanter Code, wenn ihr mehr braucht, sagt einfach Bescheid!

    Code (Text):
    <c:forEach  items="#{newsetup.upgradeSlots}" varStatus="status" var="upgradeSlot">
                        <h:form>
                        <p:selectOneMenu id="box#{status.index}" value="#{newsetup.upgradeSlots[status.index].upgrade}" converter="#{upgradeConverter}" var="upgradeItem" filter="true" filterMatchMode="contains" >
                            <p:ajax process="@this" event="change" update="@this" />
                            <f:selectItem itemLabel="#{upgradeSlot.type}" itemValue=""/>
                            <f:selectItems value="#{newsetup.getUpgradesForSlot(upgradeSlot)}" var="u" itemLabel="#{u.name}" itemValue="#{u}"/>
                            <p:column>
                                <h:outputText value="#{upgradeItem.name}"/>
                            </p:column>
                        </p:selectOneMenu>

                        <p:graphicImage id="image#{status.index}" src="resources/images/#{newsetup.upgradeSlots[status.index].upgrade.image}"/>
                        </h:form>
                    </c:forEach>
    NewSetupController(newssetup):

    Hier wird im Prinzip nur upgradeSlots durchgereicht, eine Array von UpgradeSlot. Diese Klasse enthält den Typen, eine ID und ein Objekt der Klasse Upgrade. Allerdings wird upgrade in keinem der UpgradeSlots gesetzt, warum auch immer. Die UpgradeSlots gibt es hier:

    Code (Text):

    @ManagedBean(name="upgradesService", eager = true)
    @SessionScoped
    public class UpgradesService {
        @EJB
        Queries db;

        private UpgradeSlot[] upgradeSlots;

        @PostConstruct
        public void init() {
            System.out.println("New Upgrade Service");
        }
        public void setPilot(String name)
        {
            System.out.println("Set PILOT called " + name);
            upgradeSlots = db.getUpgradesForPilot(name).toArray(new UpgradeSlot[0]);

        }
        public void setUpgradeSlots(UpgradeSlot[] s)
        {
            upgradeSlots = s;
        }
        public UpgradeSlot[] getUpgradeSlots()
        {

            return upgradeSlots;
        }
     
    In der Array ist auch alles drinne. Die Menus enhalten die richtigen Items, die ich wählen kann. Allerdings werden die Werte nicht in der Bean gesetzt, warum das so ist, verstehe ich eben nicht. Alle Beans hier sind SessionScoped.

    Ist einiges, ich würde mich freuen, wenn einer die Geduld hat, sich damit auseinanderzusetzen, ich komme einfach nicht weiter.

    Danke schon mal!
     
  2. Vielleicht hilft dir dieser Kurs hier weiter --> (hier klicken)
Die Seite wird geladen...

(Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt - Ähnliche Themen

JSF 2.0 (Primefaces) commandLinks mit action="mypage.xhtml" ohne die URL im Browser zu ändern
JSF 2.0 (Primefaces) commandLinks mit action="mypage.xhtml" ohne die URL im Browser zu ändern im Forum Web Tier
Ajax mit Facelets (PrimeFaces)
Ajax mit Facelets (PrimeFaces) im Forum Web Tier
selectOneMenu mit valueChangeListener im <p:dialog
selectOneMenu mit valueChangeListener im <p:dialog im Forum Web Tier
h:selectOneMenu Wert vorbelegen klappt nicht?
h:selectOneMenu Wert vorbelegen klappt nicht? im Forum Web Tier
selectOneMenu keine Auswahl
selectOneMenu keine Auswahl im Forum Allgemeines EE
Thema: (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt