Populando JavaBean usando JSF [FECHADO]

Eu estou desenvolvendo uma aplicação de exemplo utilizando JSF + Spring + Hibernate. A integração entre os frameworks está funcionando sem problemas, porém estou enfrentando um problema básico que não estou conseguindo resolver e, graças a ele, o desenvolvimento está parado.

O problema é o seguinte: eu tenho uma classe chamada UserContactForm, ela é a responsável por efetuar a comunicação com a camada view da aplicação. Nesta classe eu possuo um objeto chamado userContact, que é o JavaBean que desejo popular. O objeto serviceManager é injetado pelo Spring sem problemas.
A classe está da seguinte maneira:

public class UserContactForm {

	private UserContact userContact;
	private ServiceManager serviceManager;

	public UserContactForm() {
		userContact = new UserContact();
	}

	public String save() {
		System.err.println(userContact.getUserContactName());
		System.err.println(userContact.getUserContactAddress());
		System.err.println(userContact.getUserContactBirthday());
		//this.serviceManager.save(userContact);
		return "success";
	} // Finaliza o método save.

	public UserContact getUserContact() {
		return userContact;
	} // Finaliza o método getUserContact.

	public void setUserContact(UserContact userContact) {
		this.userContact = userContact;
	} // Finaliza o método setUserContact.

	public ServiceManager getServiceManager() {
		return serviceManager;
	} // Finaliza o método getServiceManager.

	public void setServiceManager(ServiceManager serviceManager) {
		this.serviceManager = serviceManager;
	} // Finaliza o método setServiceManager.

}

Porém o problema é o seguinte, ao efetuar uma chamada ao método save da classe, todas as propriedades do bean userContact está nulas, não recebendo os parâmetros do form.

Como eu faço para que o bean userContact passe a ser populado com os dados digitados no formulário da página JSP?

form.jsp

...
	<h:form>

	<h:inputHidden id="userContactId" value="#{form.userContact.userContactId}">
		<f:convertNumber/>
	</h:inputHidden>

	<table align="center" class="form">
	<tr>
		<th colspan="2"><h:outputLabel value="#{text['form.info']}"/></th>
	</tr>
	<tr>
		<td><h:outputLabel for="userContactName" value="#{text['form.name']}"/></td>
		<td><h:inputText id="userContactName" value="#{form.userContact.userContactName}" size="40" maxlength="40"/></td>
	</tr>
	<tr>
		<td><h:outputLabel for="userContactAddress" value="#{text['form.address']}"/></td>
		<td><h:inputText id="userContactAddress" value="#{form.userContact.userContactAddress}" size="40" maxlength="40"/></td>
	</tr>
	<tr>
		<td><h:outputLabel for="userContactBirthday" value="#{text['form.birthday']}"/></td>
		<td><h:inputText id="userContactBirthday" value="#{form.userContact.userContactBirthday}" size="15" maxlength="10"/></td>
	</tr>
	<tr>
		<td> </td>
		<td>
			<h:commandButton value="#{text['button.save']}" action="#{form.save}" id="save" immediate="true"/> 
			<h:commandButton value="#{text['button.cancel']}" action="cancel" id="cancel" immediate="true"/></td>
	</tr>
	</table>
	</h:form>
...

faces-config.xml

...
	<managed-bean>
		<managed-bean-name>form</managed-bean-name>
		<managed-bean-class>br.com.addressbook.web.UserContactForm</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
		<managed-property>
			<property-name>serviceManager</property-name>
			<value>#{serviceManager}</value>
		</managed-property>
	</managed-bean>
...

Desde já agradeço a atenção e a ajuda de todos.

Olá Ricardo, evita de criar dois tópicos com a mesma pergunta ok?
e coloca lá no outro topico se deu certo ou nao.
flw.

OK, me desculpe…

Tópico sobre o assunto:
http://www.guj.com.br/posts/list/0/45910.java#241029