dringend: jsf: set-Methode aufrufen

Status
Nicht offen für weitere Antworten.
S

schaefli

Gast
hallo!
Folgendes Problem:
Wenn ich auf den Button "importieren" klicke, dann möchte ich den boolean-Wert von selected auslesen. Dieser ist immer false, auch wenn ich die checkbox markiere. Beim debuggen bin ich drauf gekommen, dass die setter-Methoden aus der Klasse CWData nie aufgerufen werden! Weiß jemand, an was das liegen könnte?

Code:
 <h:dataTable binding="#{JCWPage.t_importCws}" headerClass="list-header" id="t_importCws" rendered="#{JCWPage.importRender}"
                            rowClasses="list-row-even,list-row-odd" style="left: 288px; top: 192px; position: absolute" value="#{JCWPage.myDataList}" var="dataList">
                            <h:column binding="#{JCWPage.c_select}" id="c_select">
                                <f:facet name="header">
                                    <h:outputText binding="#{JCWPage.outputText7}" id="outputText7" value="Auswählen"/>
                                </f:facet>
                                <h:selectBooleanCheckbox binding="#{JCWPage.checkbox1}" id="checkbox1" value="#{dataList.selected}"/>
                            </h:column>
                            <h:column binding="#{JCWPage.c_name}" id="c_name">
                                <f:facet name="header">
                                    <h:outputText binding="#{JCWPage.outputText4}" id="outputText4" value="Name"/>
                                </f:facet>
                                <h:outputText binding="#{JCWPage.outputText3}" id="outputText3" value="#{dataList.name}"/>
                            </h:column>
                            <h:column binding="#{JCWPage.c_date}" id="c_date">
                                <f:facet name="header">
                                    <h:outputText binding="#{JCWPage.outputText6}" id="outputText6" value="Erstellungsdatum"/>
                                </f:facet>
                                <h:outputText binding="#{JCWPage.outputText5}" id="outputText5" value="#{dataList.date}"/>
                            </h:column>
                        </h:dataTable>
Code:
import java.util.List;

public class CWData {
    
    private int id;
    private String name;
    private String date;
    private boolean selected;
    
    /** Creates a new instance of CWData */
    public CWData() {
    }
    
    public CWData (int id, String name, String date, boolean selected)
    {
        this.id=id;
        this.name=name;
        this.date=date;
        this.selected=selected;
    }
    
     public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getDate() {
        return date;
    }
    
    public boolean isSelected()
    {
        return selected;
    }

  
    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setDate(String date) {
        this.date = date;
    }
    
    public void setSelected (boolean selected)
    {
        this.selected = selected;
    }
}

Code:
public String b_import_action() {
        // TODO: Process the button click action. Return value is a navigation
        // case name where null will return to the same page.
           importRender=false;
           myDataItems = new ArrayList();
           System.out.println("MyDataList: " + getMyDataList().size());
        for (Iterator iter = getMyDataList().iterator(); iter.hasNext();) {
            myDataItem = (CWData) iter.next();
            if (myDataItem.isSelected()) {
                myDataItems.add(myDataItem);
                myDataItem.setSelected(false); 
            }
        }
...

myDataItem.isSelected() liefert immer false...

Brauche bitte dringend Hilfe!
 

y0dA

Top Contributor
Also wenn du folgende Zeile meinst:
<h:selectBooleanCheckbox binding="#{JCWPage.checkbox1}" id="checkbox1" value="#{dataList.selected}"/>

dann würde ich vorschlagen, dass du hier noch einen "valueChangeListener" hinzufügst - sonst wird der neue Wert (in deinem Fall true) nicht gesetzt.
 
T

Troi

Gast
Hi,
mach mal aus isSelected() getIsSelected() und schau ob die Methode aufgerufen wird.
 
S

schaefli

Gast
also, in dem valueChangedListener lauf ich noch einmal alle Elemente durch, nur isSelcted is wieder überall false...
 

y0dA

Top Contributor
Jo, der ValuechangeListener bekomme ja ein valueChangeEvent in welchem der neue Wert steht - da setzt du dann den neuen Wert mittels setter.
 
S

schaefli

Gast
was repräsentiert dieser neue wert von dem event?

ich habe ja eine liste mit elementen, woher weiß ich, welche checkbox geändert wurde?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
fiesematente JSF ajax innerhalb DataTable und verschachtelte EL (Brauch dringend hilfe) Allgemeines EE 8
A Servletproblem.brauche dringend einen Rat Allgemeines EE 4
B Hilfe (dringend) - Wann lieber JDBC anstatt CMP? Allgemeines EE 5
Dimax JSP Auf button click java methode ausführen.Ist das möglich? Allgemeines EE 6
M doGet()-Methode wird nicht geladen Allgemeines EE 3
J Mit @Schedule annotierte Methode wird nach einer Weile nicht mehr ausgeführt (JBoss AS 7.2) Allgemeines EE 0
OnDemand Methodenaufruf nach Aufgabenabschluss in Asynch-Methode Allgemeines EE 4
FINF_AW_Alex statische Methode und der EntityManager Allgemeines EE 13
M Wie rufe ich diese Methode auf? Allgemeines EE 1
P Displaytag findet getter-Methode(n) nicht! Allgemeines EE 3
A Timeout nach 30 Minuten Laufzeit einer entfernten Methode Allgemeines EE 3
A action-Methode wird nicht aufgerufen Allgemeines EE 7
G Objekt von jsp an set Methode von Bean übergeben! Allgemeines EE 2
J Bean in der init-Methode des Servlets instanzieren Allgemeines EE 9
S In einer Bean-Methode an ndere Beans kommen Allgemeines EE 7
J init-Methode eines Servlet ausführen ohne vorherigen request Allgemeines EE 2
M EJB-Store-Methode Allgemeines EE 2
G Struts-Form: in validate- oder reset-Methode umleiten. Allgemeines EE 3
A validate-Methode in ValidatorForm setzt Regeln ausser Kraft Allgemeines EE 3
B Anstossen einer Methode durch link! Allgemeines EE 4
OnDemand Deploy war File wie aufrufen? Allgemeines EE 10
B Intellij + WebSphere, Servlets aufrufen Allgemeines EE 1
I EJB aus JSF Anwendung aufrufen Allgemeines EE 2
E Servlet Wie kann ich ohne Hilfe von Eclipse in JBoss mein servlet aufrufen Allgemeines EE 2
C Aus MessageDrivenBean entfernte SessionBean aufrufen Allgemeines EE 7
GFEMajor EJB auf externem Server aus GWT aufrufen Allgemeines EE 13
A jsf: Servlet aufrufen, wie geht das? web.xml Fehler? Allgemeines EE 13
M Servlet lässt sich nicht aufrufen Allgemeines EE 6
M JSF Bean-Property mit Parameter aufrufen Allgemeines EE 12
E HTTP-GET// -->Eine URL aufrufen, aber nicht dahin navigie Allgemeines EE 2
B .net-Webservice aufrufen Allgemeines EE 9
L Servlet kann Funktion nicht aufrufen Allgemeines EE 3
M jsp aus java aufrufen Allgemeines EE 3
K Servlet per Formular aufrufen Allgemeines EE 8
H WebService mittels SessionBean aufrufen? Allgemeines EE 7
N JSP kann Servlet nicht aufrufen! :-( Allgemeines EE 2
V Servlet aufrufen aus JSF Allgemeines EE 5
P Einen TimerTask automatisch aufrufen Allgemeines EE 4
W Servlet aufrufen Allgemeines EE 6
E Methoden einer Bean aufrufen? Allgemeines EE 4
G Servlet beim Absenden eines Formulars aufrufen Allgemeines EE 11
C Servlet von Frame aus aufrufen Allgemeines EE 3
F Servlets aufrufen Allgemeines EE 5
J Jsp in anderer jsp aufrufen / Eventhandling Allgemeines EE 8
padde479 Servlet aufrufen Allgemeines EE 3
D JBOSS war aufrufen ohne Projektnamen Allgemeines EE 2
M Portlet von JSPs aus aufrufen Allgemeines EE 3
J JSP aus Servlet aufrufen. Allgemeines EE 2
A Anderes Servlet aufrufen Allgemeines EE 4
K URL aus Servlet aufrufen Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben