Ola a todos,
Vejam o meu problema, tenho uma pagina que contém um select de paises, e que de acordo com o pais selecionado chamo uma pesquisa que retorna uma lista de estados do pais escollhido, faço isto através da tag <mtw:list>, posteriormente no select dos estados faço uma pesquisa de cidades por estado, porém acontece o seguinte, o select dos estados desaparece. Para esclarecer mais, a lista de cidades só sera preenchida quando o pais escolhido for o brasil, caso contrário, é configurado para o usuario digitar. Outro detalhe é que quando eu escolho um pais que não seja o Brasi, Estados Unidos ou a Espanha, minha linha Estado tem que sumir da página, vejam trechos do meu código:
Página HTML
Funções javascript
Code:
function carregaEstado(){
document.cadastra_usuario.action="pesquisa_estado.pcam";
document.cadastra_usuario.submit();
}
function carregaCidade(){
document.cadastra_usuario.action="pesquisa_cidade.pcam";
document.cadastra_usuario.submit();
}
Código com a tag
Code:
<mtw:select name="paises" id="paises" list="listPais" klass="campos" emptyField="true" onchange="carregaEstado();"/>
</div></td>
</tr>
<mtw:list value="estados">
<mtw:isEmpty negate="true">
<tr>
<td>
<div align="right" class="style2">
<span class="style2">
<span class="style5">*</span>
</span>
<span class="style3"><mtw:i18n key="estado"/></span>
</div>
</td>
<td>
<div align="left">
<select name="uf" class="campos" id="uf" onChange="carregaCidade();">
<option value="0">--</option>
<mtw:loop>
<option value="<mtw:out value="codigo"/>"><mtw:out value="nome"/></option>
</mtw:loop>
</select>
</div>
</td>
</tr>
</mtw:isEmpty>
</mtw:list>
<mtw:list value="cidades">
<mtw:isEmpty negate="true">
<tr>
<td>
<div align="right" class="style2">
<span class="style2">
<span class="style5">*</span>
</span>
<span class="style3"><mtw:i18n key="cidade"/></span>
</div>
</td>
<td>
<div align="left">
<select name="cidade" class="campos" id="cidade">
<option value="0">--</option>
<mtw:loop>
<option value="<mtw:out value="codigo"/>"><mtw:out value="nome"/></option>
</mtw:loop>
</select>
</div>
</td>
</tr>
</mtw:isEmpty>
<mtw:isEmpty>
<tr>
<td>
<div align="right" class="style2">
<span class="style2">
<span class="style5">*</span>
</span>
<span class="style3"><mtw:i18n key="cidade"/></span>
</div>
</td>
<td>
<input name="fieldCidade" class="campos" size="30">
</td>
</tr>
</mtw:isEmpty>
</mtw:list>
Classes que colocam os objetos no contexto
PesquisaEstado
Code:
package net.powercam.actions;
import java.util.List;
import net.powercam.bean.Estado;
import net.powercam.dao.EstadoDAO;
import org.mentawai.core.BaseAction;
public class PesquisaEstado extends BaseAction {
public String execute(){
int codPais = input.getIntValue("paises");
List<Estado> listEstados = new EstadoDAO().getEstados(codPais);
output.setValue("estados", listEstados);
return SUCCESS;
}
}
PesquisaCidade
Code:
/**
*
*/
package net.powercam.actions;
import java.util.List;
import net.powercam.bean.Cidade;
import net.powercam.dao.CidadeDAO;
import org.mentawai.core.BaseAction;
/**
* @author Atendentes
*
*/
public class PesquisaCidade extends BaseAction {
public String execute(){
int codEstado = input.getIntValue("uf");
List<Cidade> listCidades = new CidadeDAO().getCidades(codEstado);
output.setValue("cidades", listCidades);
return SUCCESS;
}
}
Bom, é possível colocar duas listas no contexto?
Outra coisa, quando seleciono quanquer um dos select que chamam uma action e a página é recarregada, meus dados que eu havia digitado somem, o que eu faço para solucionar isto?
Valeu,
Paulo