Alternativa do request.setAttribute()

1 resposta
newbcc

Olá pessoal,

estou trabalhando com o struts e jsp. Preciso preencher um listbox (struts) com informações vindo do banco. Os dados já estão sendo recuperados e eu estava exibindo-os normalmente da seguinte maneira:

Minha Action inicialmente era invocada, trazia os dados do banco e então eu utilizava o

request.setAttribute(chave, objeto) para que na minha jsp eu interasse sobre o objeto enviado pela Action e renderizava o listbox.

Porém, agora precisaria fazer isso sem ter que enviar a lista através desse elemento request.setAttribute(chave, objeto) Mas como eu poderia fazer isso já que eu precisaria setar uma propriedade na jsp para reconhecer da onde está vindo a minha lista?

Por exemplo, usando o request.setAttribute(chave, objeto) eu utilizaria a chave enviada neste request no atributo <html:options collection do struts.

Gostaria de qualquer orientação pois não faço idéia de como poderia fazer isso.

Abs.

1 Resposta

Sorriso

Faz assim ó....

objeto
public class UF implements Serializable {

	private static final long serialVersionUID = 1L;

	private int id;
	private String name = "";

//yours respective getters and setters

}

seu form

public class SeuForm implements Serializable {

	private static final long serialVersionUID = 1L;

	private ArrayList<UF> listUf;

	// getter and setter

}

Recuperando dados do banco

public class Service {

public List<UF> getEstados(){
UfDAO dao = this.getUfDAO();

		List<UF> c = new ArrayList<UF>();

		c = dao.getAll();
}
}
action
SeuForm seuForm= (SeuForm) form;

List<UF> uf = new ArrayList<UF>();

uf = this.getService().getEstados()
seuForm.setListUf(uf);
.jsp
<html:select property="listUf" styleClass="textField" style="width:150px;" onchange="chanceUf(this.value);">
  <html:option value="" ><bean:message key="bundle.selecione" bundle="masterBundle" /></html:option>
  <html:options collection="uf" property="id" labelProperty="name"  />
</html:select>

struts.config deve estar setado seu form...

<form-beans>
		<form-bean type="br.com.form.Seuform" name="seuForm"/>
</form-beans>
	
    <global-exceptions></global-exceptions>

    <global-forwards></global-forwards>
	
	<action-mappings>
	
		<action path="path do formulario de sua jsp"  
				type="path da sua action que utilizará na jsp"
				name="o form utilizado na pagina"
				parameter="default=loadPage" 
				validate="true"
				scope="request">
			  <forward name="success" path="page.jsp"/>

		</action>
	</action-mappings>
Criado 17 de setembro de 2009
Ultima resposta 17 de set. de 2009
Respostas 1
Participantes 2