Hallo!

I use Jsf 1.2 with Tomahawk and Facelets.

On a page listing users that belong to a company, I use <t:datalist ..>
To edit one user, I call an actionListener, that retrieves the id of
the selected user.

This works since some years. Now it happens sometimes that the
selection of the user finds a userid of a user that belongs to another
company as listed.

This is really bad... :-(

Is there any advance to replace the actionlistener with
<f:setPropertyActionListener ...?
Has anybody an idea?

Thanks!



here is may actual code:




<table>
        <t:dataList     id="tablebediener"
                        rowCountVar="macCount"
                        value="#{mbBedienerVerwaltung.bedienerEB}"
                        var="bediener"
                        rowIndexVar="index">
                <tr>
                        <td     class="tabA_rahmen"
                                style="padding-left: 5px; width: 310px;">
                                <div>
                                        <t:commandLink  styleClass="aLink"
                                                        
value="#{bediener.bedAnzeigeName}"
                                                        
action="#{mbBedienerVerwaltung.edit}"
                                                        
actionListener="#{mbBedienerVerwaltung.mandantSearch}">
                                        </t:commandLink>
                                </div>
                        </td>

                        <td>...</td>
                ...
                </tr>
                
        </t:dataList>
</table>        




Here my backing bean:



public class MbBedienerVerwaltung implements Serializable
{
        private List<BedienerData> bedienerEB=null;
        private Integer idBediener;



    public void mandantSearch(ActionEvent event)
    {
        this.idBediener = 0;
        try
        {
            BedienerData bed = null;
            UIData ob = JsfUtils.getUIDataParent(event);
            Object tmp = ob.getRowData();
            bed = (BedienerData) tmp;
            this.idBediener = bed.getBedId();

        }
        catch (RuntimeException e)
        {
            log_tech.warn("mandantSearch(): Die BedienerId kann nicht
bestimmt werden! Der Bediener kann nicht editiert werden");
            this.idBediener = null;
        }

    }

    public String edit()
    {
        if ((mbBediener != null))
        {
                // retrieve Backingbean for User
                MbBediener mbBediener = JsfUtils.getMbBediener();
                // read Userdate for id from Database
            mbBediener.read(idBediener);
            return "edit";
        }
        // Error
        return "error";
    }

.....

}

Reply via email to