Frage

Naht 2.2.2, JSF 1.2. Es klingt so einfach: a dataTable Wo jede Zeile ein Kontrollkästchen hat, das ich beobachten möchte, wenn eine Schaltfläche aufgerufen wird. Ich habe einen Controller:

@Name("MyController")
@Scope(ScopeType.PAGE)
public class MyController {
    private List<MyItem> myItems;

    public MyItem[] getItemsList(boolean excluded) {
            return myItems;
    }

ich habe MyItem Typ:

public class MyItem {
    private boolean selected = false;

    public boolean isSelected() {
        return selected;
    }

    public void setSelected(boolean selected) {
        System.out.println("setting to " + selected);
        this.selected = selected;
    }

    ... other things ...
}

Dies ist mein xhtml:

<a:form id="formExcludedList">
    <rich:dataTable id="excludeList"
        value="#{MyController.getItemsList(true)}" var="o">
        <rich:column>
            <h:selectBooleanCheckbox id="selectComponent"
                value="#{o.selected}" />
        </rich:column>

Beim Klicken auf das Kontrollkästchen MyItem.setSelected wird nicht ausgeführt. Ich bekomme aber etwas funky Protokollierung: (für Kürze gepflegt)

DEBUG createHotDeployment - Using Java hot deploy
DEBUG beginRequest - >>> Begin JSF request for <my page>
DEBUG begin - beginning transaction prior to phase: RESTORE_VIEW(1)
DEBUG begin - beginning JTA transaction
WARN  getInstance - Cannot create Seam component, scope is not active: MyController(PAGE)
WARN  getInstance - Cannot create Seam component, scope is not active: MyController(PAGE)
WARN  getInstance - Cannot create Seam component, scope is not active: MyController(PAGE)
WARN  getInstance - Cannot create Seam component, scope is not active: MyController(PAGE)
DEBUG restoreAndLockConversation - No stored conversation
DEBUG commitOrRollback - committing transaction after phase: INVOKE_APPLICATION(5)
DEBUG commit - committing JTA transaction
DEBUG begin - beginning transaction prior to phase: RENDER_RESPONSE(6)
DEBUG begin - beginning JTA transaction
DEBUG commitOrRollback - committing transaction after phase: RENDER_RESPONSE(6)
DEBUG commit - committing JTA transaction
DEBUG endRequest - Discarding conversation state: 7
DEBUG endRequest - After render response, destroying contexts
DEBUG flushAndDestroyContexts - ... et cetera
DEBUG destroy - destroying: ...
DEBUG destroy - destroying: ... et cetera
DEBUG endRequest - <<< End JSF request for <my page>

Ihre Hilfe ist sehr geschätzt!

War es hilfreich?

Lösung

Es stellte sich heraus, dass mir ein paar JSF -Abhängigkeiten fehlten: jsf-api.jar und jsf-impl.jar. Anschließend nahm es die von meinem Container (WebSphere) zur Verfügung gestellten, die von der falschen Version stammten und daher nicht funktioniert. Sobald diese Abhängigkeitsgläser und die richtige Version angewendet wurden, war alles gut!

Andere Tipps

JBoss kann diesen Fehler auch werfen, wenn er nicht finden kann seam.properties in der Ihrer Bewerbung src/conf Verzeichnis. Die Datei kann leer sein, muss aber da sein, damit der Bereich aktiv ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top