Carregando uma Combo box (Struts)

4 respostas
V

Bom dia pessoal!

Estou precisando de uma grande ajuda.

Estou tentando popular uma combo box usando as tags do struts. Uma tarefa que parecia simples, se tornou um tormento nesse momento, espero que vcs consigam me ajudar.

Estou tentando popular no meu combo uma lista de inteiros, não sei se esse pode ser o problema.
No meu form crio uma lista de inteiros, na minha action seto o atributo e ainda crio um método que é uma lista de inteiros.

Vou passar uns códigos abaixo pra ficar mais fácil de entender.

Form
public class ReajusteForm extends ValidatorForm {
		
	private static final long serialVersionUID = 1L;
	
	private String  id;
	private String  nrAno;
	private String  prJaneiro;
	private String  prFevereiro;
	private String  prMarco;
	private String  prAbril;
	private String  prMaio;
	private String  prJunho;
	private String  prJulho;
	private String  prAgosto;
	private String  prSetembro;
	private String  prOutubro;
	private String  prNovembro;
	private String  prDezembro;	
	private String 	dataTimestamp;
	private String  respAlteracao;
	
	private String alterarReajuste;
    
    private String incluirReajuste;
    
    private String carregarReajuste;
    
    private int[] listaAno;
           
	 
          
        
	public int[] getListaAno() {
		return listaAno;
	}
	public void setListaAno(int[] listaAno) {
		this.listaAno = listaAno;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getAlterarReajuste() {
		return alterarReajuste;
	}
	public void setAlterarReajuste(String alterarReajuste) {
		this.alterarReajuste = alterarReajuste;
	}
	public String getIncluirReajuste() {
		return incluirReajuste;
	}
	public void setIncluirReajuste(String incluirReajuste) {
		this.incluirReajuste = incluirReajuste;
	}
	public String getCarregarReajuste() {
		return carregarReajuste;
	}
	public void setCarregarReajuste(String carregarReajuste) {
		this.carregarReajuste = carregarReajuste;
	}
	public String getNrAno() {
		return nrAno;
	}
	public void setNrAno(String nrAno) {
		this.nrAno = nrAno;
	}
	public String getPrJaneiro() {
		return prJaneiro;
	}
	public void setPrJaneiro(String prJaneiro) {
		this.prJaneiro = prJaneiro;
	}
	public String getPrFevereiro() {
		return prFevereiro;
	}
	public void setPrFevereiro(String prFevereiro) {
		this.prFevereiro = prFevereiro;
	}
	public String getPrMarco() {
		return prMarco;
	}
	public void setPrMarco(String prMarco) {
		this.prMarco = prMarco;
	}
	public String getPrAbril() {
		return prAbril;
	}
	public void setPrAbril(String prAbril) {
		this.prAbril = prAbril;
	}
	public String getPrMaio() {
		return prMaio;
	}
	public void setPrMaio(String prMaio) {
		this.prMaio = prMaio;
	}
	public String getPrJunho() {
		return prJunho;
	}
	public void setPrJunho(String prJunho) {
		this.prJunho = prJunho;
	}
	public String getPrJulho() {
		return prJulho;
	}
	public void setPrJulho(String prJulho) {
		this.prJulho = prJulho;
	}
	public String getPrAgosto() {
		return prAgosto;
	}
	public void setPrAgosto(String prAgosto) {
		this.prAgosto = prAgosto;
	}
	public String getPrSetembro() {
		return prSetembro;
	}
	public void setPrSetembro(String prSetembro) {
		this.prSetembro = prSetembro;
	}
	public String getPrOutubro() {
		return prOutubro;
	}
	public void setPrOutubro(String prOutubro) {
		this.prOutubro = prOutubro;
	}
	public String getPrNovembro() {
		return prNovembro;
	}
	public void setPrNovembro(String prNovembro) {
		this.prNovembro = prNovembro;
	}
	public String getPrDezembro() {
		return prDezembro;
	}
	public void setPrDezembro(String prDezembro) {
		this.prDezembro = prDezembro;
	}
	public String getDataTimestamp() {
		return dataTimestamp;
	}
	public void setDataTimestamp(String dataTimestamp) {
		this.dataTimestamp = dataTimestamp;
	}
	public String getRespAlteracao() {
		return respAlteracao;
	}
	public void setRespAlteracao(String respAlteracao) {
		this.respAlteracao = respAlteracao;
	}
	
}


Action
[code]
public class CarregarReajusteAction extends PfpAction {

	@Override
	public String executar(ActionMapping mapping, ActionForm actionForm,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		ReajusteControlador controlador = new ReajusteControlador();		
		PfpDataTransferObject dto = (PfpDataTransferObject) controlador.execute(controlador.LISTAR, getDTO());
		Collection result = (Collection)dto.getObject(ConstantesAplicacao.LISTAR);
		ReajusteForm formReajuste = new ReajusteForm();
		//int anos[] = anoList();		 
		//formReajuste.setListaAno(anos);
		String[] listaAno = {"2006","2007","2008","2009"};
		request.setAttribute("listaAnos" ,listaAno);
		//int anoAtual = new GregorianCalendar().get(Calendar.YEAR);
		//formReajuste.setNrAno(Integer.toString(anoAtual));
		//request.setAttribute("anoAtual" , anoAtual);
		request.setAttribute("listaReajuste", result);		
		return SUCESSO;
	}

public int[] anoList(){  
    	int anoAtual = new GregorianCalendar().get(Calendar.YEAR);
    	int anoInicio = 2006; //Solicitado pelo Cliente
    	int range = anoAtual - anoInicio;
    	int rangeTotal = anoInicio + range + 10;
    	int[] listaAno = new int[rangeTotal];	
    	
        for ( int  i =0 ; anoInicio+i < rangeTotal +1 ; i++){  
        	listaAno[i] = anoInicio + i;
        } 
         return listaAno;
    }

  }

jsp

<td>
			
			<html:select property="listaAno" onchange="javascript:carregarComboAno(this)">
				<html:options property="listaAnos" />
			</html:select>
			
		</td>

Agradeço desde já,

Vitor

4 Respostas

saulods

vc pode usar JSTL ?

V

Saulo,

Posso usar sim.

[]´s

saulods

Entao faz assim:

Na Action:

List<Integer> listaDeSemestre = super.getSemestre(request);
        request.setAttribute("QTD_SEMESTRE", listaDeSemestre);

Na jsp:

<html:select property="semestre" styleClass="textstyle">
          			     	  <html:option value=" " > </html:option>	
						      <c:forEach items="${QTD_SEMESTRE}" var="to"> 												
						    	<html:option value="${to}">${to}</html:option>
							 </c:forEach>	
						    </html:select>

Espero ter ajudado =)

V

Saulo,

Já consegui fazer essa implementação.

Muito obrigado!!!

[]´s
Vitor

Criado 1 de dezembro de 2009
Ultima resposta 1 de dez. de 2009
Respostas 4
Participantes 2