ActionListener nie pobiera wartości.

0

Mam stronę, która wyświetla listę wszystkich użytkowników i posiada opcję edycji oraz usuwania ich. Próbuje zrobić, aby po wciśnięciu przycisku edycja przy danym użytkowniku przeszło na nową stronę edit.xhtml i tam ukazały się dane tegoż użytkownika i można było je swobodnie edytować. Aby pobrać danego użytkownika użyłem:

<f:setPropertyActionListener target="#{uzytkownikBean.uzytkownik}" value="#{uzy}"/>

Zmienna uzy to zmienna typu List<Uzytkownicy> znajdująca się w moim managedBeanie JSF. Niestety po wciśnięciu przycisku edytuj nie zostaje on zapisany i w oknie edit.xhtml wszystkie pola do edycji są puste, a chciałem aby były wypełnione danymi tegoż użytkownika. Oznacza to, że chyba ActionListener nie zapisał tego do zmiennej uzytkownik. Czemu się tak stało, co zrobiłem źle? Starałem się postępować zgodnie z przykładem znalezionym w internecie. Co ciekawe jeśli zmienię w

<f:setPropertyActionListener target="#{uzytkownikBean.uzytkownik}" value="#{uzy}"/> 

value na

value=u"#{zytkownikBean.uzytkownik}

to po wciśnięciu edytuj wywala mi błąd:

Cannot convert [pl.ePrzychodnia.model.Uzytkownik[ uzytkownikid=1 ], pl.ePrzychodnia.model.Uzytkownik[ uzytkownikid=2 ]] of type class java.util.Vector to class pl.ePrzychodnia.model.Uzytkownik

Czemu się tak dzieje? Przecież uzy jest deklarowane na początku tabeli:

<h:dataTable value="#{uzytkownikBean.uzytkownicy}" var="uzy"> 

więc jest to chyba to samo? A w pierwszym przypadku przechodzi do strony edit.xhtml a w drugim wywala błąd.

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:c="http://java.sun.com/jsp/jstl/core">

    <h:head>
        <title>Panel Admina</title>
    </h:head>

    <h:body>
        <f:view>
            <h:form>
                <h1>Panel admina</h1>
                <h:commandLink action="./add.xhtml" value="Dodaj użytkownika"/>
                <h:dataTable value="#{uzytkownikBean.uzytkownicy}" var="uzy">
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Imie"></h:outputText>
                        </f:facet>
                        <h:outputText value="#{uzy.imie}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Nazwisko"></h:outputText>
                        </f:facet>
                        <h:outputText value="#{uzy.nazwisko}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Edytuj"></h:outputText>
                        </f:facet>
                        <h:commandLink action="./edit.xhtml" value="Edytuj">
                            <f:setPropertyActionListener target="#{uzytkownikBean.uzytkownik}" value="#{uzy}"/>
                        </h:commandLink>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Usuń"></h:outputText>
                        </f:facet>
                        <h:commandLink action="#{uzytkownikBean.deleteUzytkownik()}" value="Usuń">
                            <f:param name="uzytkownikId" value="#{uzy.uzytkownikId}"/>
                        </h:commandLink>
                    </h:column>
                </h:dataTable>
            </h:form>
        </f:view>
    </h:body>
</html>

ManagedBean JSF

@Named(value = "uzytkownikBean")
@SessionScoped
public class UzytkownikBean implements Serializable {
    @EJB
    private UzytkownikDaoLocal uzytkownikDao;
    private List<Uzytkownik> uzytkownicy;
    private Uzytkownik uzytkownik = new Uzytkownik();;
    private Integer uzytkownikId;
    private String login;
    private String password;
    private String dbusername;
    private String dbpassword;
    private String typ;
0

Pomoże ktoś?

1 użytkowników online, w tym zalogowanych: 0, gości: 1