As I stated in my first post, it doesn't matter if it is in request or
session.  I get the same results.  saveState didn't solve the problem
and rendered="#{categoryAdmin.updateMode}" does resolve to true after
the Edit button is pressed.  That was clear in my code I posted.

Any other ideas?

Gregg

On 8/12/05, Mathias Broekelmann <[EMAIL PROTECTED]> wrote:
> take a look at rendered="#{categoryAdmin.updateMode}" which must be true
> to process the actionlistener when the request is decoded. Save the
> state of categoryAdmin with t:savestate or make the bean session scope.
> 
> Hope that helps.
> 
> Regards,
> Mathias
> 
> Gregg D Bolinger schrieb:
> > FYI - the missing # from the actionListener in
> >
> > <x:commandButton id="updateButton"
> > actionListener="{categoryAdmin.update}" value="Update"
> > rendered="#{categoryAdmin.updateMode}"/>
> >
> > was corrected as I was typing in a hurry. The problem still persists.
> > Thanks for any help.  And I am using MyFaces 1.0.9.  Using the latest
> > nightly snapshot did not resolve this issue  either.
> >
> > Gregg
> >
> > On 8/11/05, Gregg D Bolinger <[EMAIL PROTECTED]> wrote:
> >
> >>I'm not sure if this is an issue with MyFaces or with how I am doing
> >>what I am doing or what.  I have a very simple page with a a
> >>dataTable.  I am wanting to edit the data in the dataTable inline.
> >>That is to say, not navigating to a seperate page.  I have it setup
> >>with an edit button for each item and when that button is pressed I
> >>render inputText components and an update button for the associated
> >>row.  This works.
> >>
> >>The problem is that the update button's actionListener method binding
> >>isn't working.  When I press the update button, nothing happens.  The
> >>update(ActionEvent event) method is never called.  It doesn't matter
> >>if the bean is in the session or request. It just doesn't call the
> >>method.  I have stripped the code down to the simplest working example
> >>that demonstrates this problem which I will post below.  As it is
> >>right now, I am merely showing and hiding the update/edit buttons.
> >>When I press Edit the edit method is being called and the update
> >>button is rendered where the edit button is now not rendered.  If I
> >>hit update button, the update method is never called and the edit
> >>button is displayed again, hiding the update button.  I realize that
> >>with each button press a new request is being sent to the server.
> >>However, it JSF is supposed to save the state of the bean for
> >>actionListeners since it does not navigate from the page. However, I
> >>don't believe this is working correctly.  Any ideas?  Thanks.
> >>
> >><f:view>
> >><html>
> >>  <head><title>Simple jsp page</title></head>
> >>  <body>
> >>  <jsp:include page="includes/admin_header.jsp"/>
> >>  <h:form>
> >>    <x:dataTable var="cat" binding="#{categoryAdmin.categoryData}"
> >>value="#{categoryAdmin.categoryList}" border="1"
> >>forceIdIndex="#{cat.categoryId}" >
> >>        <h:column>
> >>            <f:facet name="header">
> >>                <h:outputText value="Description" />
> >>            </f:facet>
> >>            <h:outputText value="#{cat.description}"/>
> >>        </h:column>
> >>        <h:column>
> >>            <f:facet name="header">
> >>                <h:outputText value="Cost"/>
> >>            </f:facet>
> >>            <h:outputText value="#{cat.cost}"/>
> >>
> >>        </h:column>
> >>        <h:column>
> >>            <x:commandButton id="editButton"
> >>actionListener="#{categoryAdmin.edit}" value="Edit" rendered="#{not
> >>categoryAdmin.updateMode}" />
> >>            <x:commandButton id="updateButton"
> >>actionListener="{categoryAdmin.update}" value="Update"
> >>rendered="#{categoryAdmin.updateMode}"/>
> >>        </h:column>
> >>        <h:column>
> >>            <x:commandButton actionListener="#{categoryAdmin.delete}"
> >>value="Delete"/>
> >>        </h:column>
> >>    </x:dataTable>
> >>    <f:verbatim><br/></f:verbatim>
> >>
> >>    <h:panelGrid columns="2" border="1">
> >>        <h:outputText value="Description"/>
> >>        <h:inputText value="#{categoryAdmin.category.description}" />
> >>        <h:outputText value="Cost"/>
> >>        <h:inputText value="#{categoryAdmin.category.cost}"/>
> >>        <h:commandButton actionListener="#{categoryAdmin.add}" 
> >> value="Save"/>
> >>        <h:commandButton actionListener="#{categoryAdmin.cancel}"
> >>value="Cance"/>
> >>    </h:panelGrid>
> >>
> >>
> >>  </h:form>
> >>  </body>
> >></html>
> >></f:view>
> >>
> >>public class CategoryAdmin extends BaseBean implements Serializable {
> >>
> >>    private List categoryList;
> >>    private UIData categoryData;
> >>    private boolean updateMode = false;
> >>
> >>    private Category category;
> >>
> >>    public List getCategoryList() {
> >>        CategoryService catService =
> >>(CategoryService)getAppContext().getBean("categoryService");
> >>        categoryList = catService.getall();
> >>        return categoryList;
> >>    }
> >>
> >>    public void setCategoryList(List categoryList) {
> >>
> >>        this.categoryList = categoryList;
> >>    }
> >>
> >>    public UIData getCategoryData() {
> >>
> >>
> >>        return categoryData;
> >>    }
> >>
> >>
> >>
> >>    public void setCategoryData(UIData categoryData) {
> >>        this.categoryData = categoryData;
> >>    }
> >>
> >>    public boolean isUpdateMode() {
> >>        return updateMode;
> >>    }
> >>
> >>    public void setUpdateMode(boolean updateMode) {
> >>        this.updateMode = updateMode;
> >>    }
> >>
> >>    public Category getCategory() {
> >>        if (category == null){
> >>            category = new Category();
> >>        }
> >>        return category;
> >>    }
> >>
> >>    public void setCategory(Category category) {
> >>        this.category = category;
> >>    }
> >>
> >>    public void edit(ActionEvent event){
> >>        System.out.println("Edit");
> >>        category = (Category)categoryData.getRowData();
> >>        category.setEditable(true);
> >>        setUpdateMode(true);
> >>    }
> >>
> >>    public void update(ActionEvent event){
> >>        System.out.println("Updating");
> >>    }
> >>
> >>
> >>
> >>    public void delete(ActionEvent event){
> >>
> >>
> >>        CategoryService catService =
> >>(CategoryService)getAppContext().getBean("categoryService");
> >>        Category cat = (Category)categoryData.getRowData();
> >>        catService.delete(cat);
> >>        setCategoryList(catService.getall());
> >>
> >>
> >>    }
> >>
> >>    public void add(ActionEvent event){
> >>        System.out.println("Adding");
> >>
> >>        CategoryService catService =
> >>(CategoryService)getAppContext().getBean("categoryService");
> >>        catService.insert(getCategory());
> >>
> >>    }
> >>
> >>    public void cancel(ActionEvent event){
> >>
> >>    }
> >>
> >>    public void changeAddMode(ActionEvent event){
> >>        System.out.println("Changing Add Mode");
> >>
> >>    }
> >>}
> >>
>

Reply via email to