<f:actionParam> assignTo attribe does not assign value
ninekays Jul 1, 2009 7:05 AMHi all, im a newbie with richfaces, i hope u can help me with a problem that im having right now.
here's the code;
<h:panelGroup id="searchPanel">
<h:form>
<h:panelGrid columns="3" id="select_maker" cellpadding="2">
<h:outputText value="Select handset maker"/>
<h:outputText value=" "/>
<h:selectOneMenu id="makers"
value="#{gameHandsetController.makerId}"
styleClass="select_handset">
<f:selectItem itemValue="Please select one ..."/>
<f:selectItems value="#{gameHandsetController.handsetMakerListSelectItems}"/>
<a4j:support event="onchange" reRender="select_model, out"
ajaxSingle="true"
actionListener="#{gameHandsetController.changeMakerValue}"
status="status"/>
</h:selectOneMenu>
</h:panelGrid>
</h:form>
<h:form>
<h:panelGrid id="select_model" columns="3" cellpadding="2">
<h:outputText value="Select handset model"/>
<a4j:status id="status">
<f:facet name="start">
<h:graphicImage value="../images/ajax-loader-small.gif"/>
</f:facet>
</a4j:status>
<h:selectOneMenu id="models"
styleClass="select_handset"
value="#{gameHandsetController.modelId}">
<f:selectItems value="#{gameHandsetController.handsetModelListSelectItems}" />
</h:selectOneMenu>
</h:panelGrid>
<a4j:commandButton reRender="gameList,out" ajaxSingle="true"
actionListener="#{gameHandsetController.doSearch}"
value="search">
<a4j:actionparam assignTo="#{gameHandsetController.modelId}"
value="#{gameHandsetController.modelId}"/>
</a4j:commandButton>
</h:form>
</h:panelGroup>
the problem is, when the command button is clicked, the value gameHandsetController.modelId is not assigned. Here's the code for gameHandssetController.doSearch.
public void doSearch(ActionEvent event) {
log.debug("modelId=" + modelId + " event=" + event.toString());
retrieveGameList();
}
public void setModelId(String modelId) {
log.debug("setModelId=" + modelId);
this.modelId = modelId;
}
Here's what my log prints out (I put a log print in PhaseListener so I know what's going on)
AccessFilter - doFilter: Requesting IP=127.0.0.1 accessing=/web/guide/gamehandsetsearch.jsf referred by=http://localhost/web/guide/gamehandsetsearch.jsf. PhaseListener - beforePhase: BEFORE RESTORE_VIEW 1 PhaseListener - afterPhase: AFTER RESTORE_VIEW 1 PhaseListener - beforePhase: BEFORE APPLY_REQUEST_VALUES 2 PhaseListener - afterPhase: AFTER APPLY_REQUEST_VALUES 2 PhaseListener - beforePhase: BEFORE PROCESS_VALIDATIONS 3 PhaseListener - afterPhase: AFTER PROCESS_VALIDATIONS 3 PhaseListener - beforePhase: BEFORE UPDATE_MODEL_VALUES 4 PhaseListener - afterPhase: AFTER UPDATE_MODEL_VALUES 4 PhaseListener - beforePhase: BEFORE INVOKE_APPLICATION 5 GameHandsetController - <init>: params makerId=, pageNo=1 GameHandsetController - doSearch: modelId=null event=javax.faces.event.ActionEvent[source=org.ajax4jsf.component.html.HtmlAjaxCommandButton@1d7e5f7] GameHandsetDAO - getGameHandset: GameHandsetDAO with param msId=null, pageNo=1 GameHandsetController - setModelId: setModelId= GameHandsetDAO - getGameHandset: GameHandsetDAO with param msId=, pageNo=1 PhaseListener - afterPhase: AFTER INVOKE_APPLICATION 5 PhaseListener - beforePhase: BEFORE RENDER_RESPONSE 6 PhaseListener - afterPhase: AFTER RENDER_RESPONSE 6
Can anybody tell me what i did wrong?
thank you in advance!