[STRUTS] Carregar valores do banco

10 respostas
erickcellani

Pessoal… estou com a seguinte duvida…

eu preciso carregar alguns dados do banco e exibir na minha jsp…

qual tag do struts que eu preciso usar…???

alguém tem algum exemplo ??

10 Respostas

Pedrosa

Você pode usar a logic para exibir listas de resultados e bean:write para dados normais ou simplesmente usar jstl com as tags forEach para listas e Expression language para outras coisas:

Tag do struts

<logic:iterate name="userListBean" id="user" > </logic:iterate>
<bean:write name="user" property="nome"/>

JSTL

//equivalente a logic
<c:forEach var="usuarios" items="${usuarios}">
    //equivalente a bean:write
    ${usuarios.cpf}
</c:forEach>
insuportavel

Pedrosa boa tarde.

Como é possivel fazer um combobox dentro do Struts?

Eu me recordo de ter visto algo mais não sei ao certo como era, vc poderia por favor dar um outro exemplo disto?

ramilani12

Vc pode usar tags Struts HTML:

&lt;html:form action="/Enquete.do" &gt;
&lt;html:select property="idEnquete" styleClass="box" onchange="submeter();"&gt;
                  &lt;html:option value=""&gt;--------&gtSelecione&lt--------&lt;/html:option&gt;
                  &lt;html:options collection="enquetes" property="idEnquete" labelProperty="descricao"/&gt;
               &lt;/html:select&gt;

&lt;/html:form&gt;

Na sua Action vc precisa colocar no objeto request a collection

List enquetes = new ArrayList();
request.setAttribute("enquetes",enquetes);
Pedrosa

Talvez isso te ajude:

http://www.guj.com.br/posts/list/21602.java

Com JSTL popularia assim:

<select name="artilheiro" >
  <option value="">..</option>
  <c:forEach var="artilheiros" items="${artilheiros}">
      <option value="${artilheiros.codigoArtilheiro}">
          ${artilheiros.nomeArtilheiro}
       </option>
  </c:forEach>
</select>
insuportavel

Boa tarde ramilani12

Se eu entendi, basta eu passar um List para o select do html:

List<produtos> listaDeProdutos = new ArrayList<Produtos>();

Certo???

Vou fazer um teste agora na parte da tarde e ja digo oque houve como resultado!

Muito obrigado :slight_smile:

insuportavel

Fala Pedrosa, boa tarde.

Muito obrigado, vou testar estas opções, o ramilani12 tbem mandou um exemplo para eu testar e vou fazer isto agora mesmo :slight_smile:

Assim que eu tiver feito o teste, coloco o codigo para o pessoal dar uma olhada no resultado!

Muito obrigado :smiley:

A

Eu ja usei muito JSTL, antes de eu usar Struts profissionalmente.
O JSTL realmente é bem mais estiloso, mais bonito, etc…

Mas as tags do Struts são menos verboses…

Talvez para iniciante o JSTL seja mais facil de entender…
Porem o do struts sao mais completos!

insuportavel

Bom dia pessoal.

Como eu disse, tão logo eu fizesse o teste eu postaria o código, então ai vai.

Antes uma observação muito importante. Por falta de atenção minha eu acabei esquecendo de mencionar o principal, estou usando o struts2 (webwork) oque não me impediu de usar a JSTL como o Pedrosa ensinou e nem a outra forma como o ramilani12 moustrou com as tags do struts 1.x, das duas formas consegui o mesmo resultado. :-o

Obrigado aos dois por me ajudarem com esta dúvida!

Porém qdo. eu passei a versão para o CVS e o meu gerente viu o código ele perguntou se eu não conhecia as tags do struts2 e me mostrou esta outra forma:

<td>
<s:select list="result"
	listKey="unidade"
 	listValue="unidade + '-' + nome"
	cssClass="textBox"/>
</td>

Onde:
list=result
é minha Collection
listkey=unidade
é uma das propriedades do objeto Collection
listvalue="unidade + ‘-’ nome"
é oque será exibido para o usuario no combo,
neste caso:
0101 - MOUSE
0102 - TECLADO
0103 - PENDRIVE . . .

para saber mais, tem uma lista bem aqui --> tags struts2 (webwork)


Agora preciso ver se consigo pegar o valor da unidade que esta sendo exibida neste <s:select />

Alguem tem alguma idéia de como se faz isto? :slight_smile:

Um ótimo dia para todos!

erickcellani

pessoal… por favor… me ajudem…

<logic:iterate id="mensagens" name="mensagensLivro">
	<bean:write name="mensagens" property="idMensagem"/>
	<bean:write name="mensagens" property="userName"/>
	<bean:write name="mensagens" property="dataMensagem"/>
	<bean:write name="mensagens" property="assunto"/>
	<bean:write name="mensagens" property="mensagem"/>
</logic:iterate>

Cannot find bean mensagensLivro in any scope

onde eu tenho que mapear esse mensagensLivro ???

erickcellani

pessoal… resolvido… mto obrigado mesmo assim!

para futuros leitores do forum a resolução foi:

request.setAttribute("mensagensLivro", col);

dentro da minha action!

:slight_smile:

Criado 25 de abril de 2007
Ultima resposta 26 de abr. de 2007
Respostas 10
Participantes 5