help: a4j:commandButton not updating my bean
robertwalker Feb 2, 2010 3:04 PMHi all, I have a a4j:commandButton that should be updating my bean,
but my breakpoint in the action method invoked shows the property is null.
If I simply change to h:commandButton then the property is set from a value on the form.
I also added a MyPhaseListener.java whcih prints out logging in beforePhase() and afterPhase()
I can confirm that if I use h:commandButton i see the update models phase being called (b4 and after)
and if I use a4j:commandButton I ALSO see update models phase being called (b4 and after)
I also added
<a4j:log/>
and viewing the log seems to show all my values are indeed leaving the client browser and heading to the server.
My backing bean is defined like such
{code}
@Name("mailboxManager") // identifies this as a Seam component, seam component name ="mailboxManager"
@Scope(ScopeType.CONVERSATION)
public class MailboxManager implements Serializable
{
..
{code}
I really wanted to use a4j:commandButton though cause I got a status indicator flashing until the response comes back which is great feedback to the user, and it looks great. Love the whole richfaces components!!!!
when stopping in my mailboxManager.sendEmailToMailBox() action method,
I see my bean's (mailboxManager) testEmailFromAddress property
is null, but changing to use h:commandButton it actually has one of the selected values from
the
<h:selectOneMenu id="testMailboxFromListbox" value="#{mailboxManager.testEmailFromAddress}">
must be something to do with a4j:region ?
any help would be greatly appreciated
{code}
<rich:panel style="width:550px;border: 1px solid blue;padding:1em">
<a4j:form id="sendTestEmailForm">
<h:panelGrid columns="2">
<h:outputText styleClass="labelFont" value="From: " />
<h:selectOneMenu id="testMailboxFromListbox"
required="true"
value="#{mailboxManager.testEmailFromAddress}">
<f:selectItem itemValue="anEmailAddress@bar.com" itemLabel="foo bar" />
<f:selectItem itemValue="anotherEmail@foo.com" itemLabel="abc def" />
</h:selectOneMenu>
</h:panelGrid>
<br/>
<h:panelGrid columns="3" style="height:35px;">
<a4j:region id="statusImg4">
<a4j:commandButton id="sendTestEmailButton"
value="Send Email to Mailbox"
action="#{mailboxManager.sendEmailToMailBox}" />
<!--
this works, stopping in mailboxManager.sendEmailToMailBox()
shows mailboxManager.testEmailFromAddress has a selected
value from above
<h:commandButton id="sendTestEmailButton"
value="Send Email to Mailbox"
action="#{mailboxManager.sendEmailToMailBox}" />
-->
</a4j:region>
<a4j:status for="statusImg4">
<f:facet name="start">
<h:graphicImage value="/images/ajax-loader2.gif"/>
</f:facet>
</a4j:status>
<rich:message for="sendTestEmailButton"
errorLabelClass="errorLabel"
errorClass="errorLabel"
infoLabelClass="infoLabel"
infoClass="infoLabel">
<f:facet name="errorMarker"><h:graphicImage url="/images/failed.gif"/></f:facet>
<f:facet name="infoMarker"><h:graphicImage url="/images/ok.gif"/></f:facet>
</rich:message>
</h:panelGrid>
</a4j:form>
</rich:panel>
{code}