Pessoal, estou tentando utilizar o struts, e seguindo um exemplo, preciso passar uma lista, localizado na classe action para o meu JSP
bem, utilizo o request.setAttribute(“contatos”, lista);
e no JSP utilizo a EL para recuperar os valores da lista, através da tag <c:forEach>
pois bem… a impressão que tenho é que a lista não está sendo passada para o JSP !! ele imprime em meu browser a propria tag ${contato.nome}
quando realizo o ActionForwarding preciso informar alguma coisa, como o objeto request utilizado?
Você adicionou a diretiva do jstl no inicio de sua página e o jar do jstl está no classpath do projeto?
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
sim… adicionei ! o que eu não entendo é a mesma pagina JSP quando chamada por um requestDispatcher em um servlet que eu fiz… que faz a mesma coisa com a lista… funciona corretamente
Como esta sua classe Action do Struts e os mapeamentos do struts-config.xml?
ACTION
package br.com.caelum.struts.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jdbc.dao.ContatoDAO;
import jdbc.modelo.Contato;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class ListaContatosAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// pesquisa no banco de dados a lista completa
List<Contato> lista = new ContatoDAO().getLista();
request.setAttribute("contatos", lista);
// ok... para onde ir agora?
if (lista.isEmpty()) {
return mapping.findForward("vazia");
} else {
return mapping.findForward("lista");
}
}
STRUTS-CONFIG
<action path="/listaContatos" type="br.com.caelum.struts.action.ListaContatosAction">
<forward name="lista" path="/lista.jsp"/>
<forward name="vazia" path="/lista-vazia.jsp"/>
</action>
sigma
Maio 7, 2007, 1:33pm
#6
Use isso no começo da pagina.
<%@ page isELIgnored=“false”%>
Caramba Sigma… funcionou… vlw cara
c pode me explicar o porque eu preciso utilizar isso ??
<%@ page isELIgnored=“false”%>
não tem algum lugar onde eu posso setar essa informação e ela ser utilizada para qualquer pagina jsp ?
vlw
sigma
Maio 7, 2007, 1:49pm
#8
Habilita e desabilita o EL na pagina.
tudo bem, mais essa configuração por default não é FALSE já ?
eu andei lendo alguns tópicos, e não entendi muito bem!!!
algumas pessoas falam que o problema quando a EL não funciona é a taglib… ! agora eu preciso ter os jar da JSTL pra utilizar EL ??? pensei que não precisasse !!
eu li tambem falando sobre configuração no XML… a versão do container !!! bom sei la !