Recarregar objeto

Tenho hoje listas com dados das minhas tabelas, como por exemplo:
Estados
[todos os estados]

Cidade
[todas as cidades]

Gostaria de quando fosse escolhido por exemplo estado SC, que trouxesse somente as cidades que estejam atreladas ao estado SC, no caso que recarregasse o meu HtmlSelectOneMenu com sua lista de itens.

Tenho essa aplicaçao feita em JSF, onde tudo é criado dinamicamente, nada é por html.
Mas se tiverem alguma sugestão de como fazer, nem que seja em html mesmo.

Grato

Eu uso Richfaces. Com a tag a4j:support, você “chama” o método do seu controller e “renderiza” o componente de sua escolha.
No código abaixo, ao modificar a combo uf (a4j:support com event=“onchange”), é chamado o método seuController.carregaMunicipios(), esse método carrega a list de municípios do meu controller listaMunicipioTOs, e depois atualiza o component “municipio” com todos os municípios da UF.

Obs.: A tag s:selectItems e do JBoss Seam. Se você estiver usando o JSF, use o f:selectItems.

	<!-- CAMPO UNIDADE DA FEDERACAO -->
	<h:outputLabel value="UF:" id="ufLabel" />
	<h:selectOneMenu id="uf" value="#{seuController.siglaUF}">
		<s:selectItems value="#{seuController.ufs}" noSelectionLabel="Selecione..."
			var="uf" label="#{uf.getSiglauf()}" itemValue="#{uf.getSiglauf()}" />
		<a4j:support action="#{seuController.carregaMunicipios()}" ajaxSingle="true"
			event="onchange" reRender="municipio" />
	</h:selectOneMenu>

	<!-- CAMPO MUNICIPIO -->
	<h:outputLabel value="Município:" id="municipioLabel" />
	<h:selectOneMenu id="municipio" value="#{seuController.codigoIbge}">
		<s:selectItems value="#{seuController.listaMunicipioTOs}"
			noSelectionLabel="Selecione..." var="municipio"
			label="#{municipio.getMunicipio()}"
			itemValue="#{municipio.getCodigoIbge()}" />
		<rich:ajaxValidator event="onblur" />
	</h:selectOneMenu>

Espero que ajude!