Gostaria de exibir em minha pagina as categorias do banco de dados, usando as tags do struts ou do jstl…ja estou com os .jar standard.jar e jstl.jar e struts-el.jar incluidos na aplicacao…ja tentei d todos os jeitos exibir…mas a pagina fica em branco…abaixo segue os arquivos da minha aplicacao.:
CategoriaForm.java
package jm.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class CategoriaForm extends ActionForm
{
private int codigo;
private String nome;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
this.codigo = 0;
this.nome = null;
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
return null;
}
}
CategoriaDAO.java
package jm.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import jm.conexao.JDBCBase;
import jm.form.CategoriaForm;
public class CategoriaDAO extends JDBCBase
{
public static Collection listarCategoria() {
Connection con = getConexao();
PreparedStatement ps = null;
ResultSet rs = null;
String sql = null;
Collection categorias = null;
try {
sql = "SELECT * FROM categorias ORDER BY nome_categoria";
ps = con.prepareStatement( sql );
rs = ps.executeQuery();
categorias = new ArrayList();
while ( rs.next() ) {
CategoriaForm form = new CategoriaForm();
form.setCodigo(rs.getInt( "cod_categoria" ));
form.setNome( rs.getString( "nome_categoria" ) );
categorias.add( form );
}
return categorias;
} catch ( SQLException se ) {
System.out.println( "Erro: " + se.toString() );
se.printStackTrace();
} catch ( Exception e ) {
System.out.println( "Erro: " + e.toString() );
e.printStackTrace();
} finally {
fecharConexao( con, ps, rs );
}
return categorias;
}
}
CategoriaBO.java
public class CategoriaBO
{
public static Collection listarCategoria() {
Collection categorias = null;
categorias = CategoriaDAO.listarCategoria();
return categorias;
}
}
CategoriaAction.java
package jm.action;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jm.bo.CategoriaBO;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
public class CategoriaAction extends DispatchAction
{
public ActionForward listar( ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response )
throws Exception {
String target;
Collection categorias = CategoriaBO.listarCategoria();
request.getSession().setAttribute( "categorias", categorias );
target = "exibir";
return ( mapping.findForward( target ) );
}
}
exibir.jsp
<%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic" %>
<%@ taglib prefix="c" uri="/WEB-INF/tld/c.tld" %>
<c:forEach var="prodEL" items="${categorias}">
${prodEL.nome}
</c:forEach>
Este codigo abaixo funciona, mas quero acessar os elementos usando as tags do struts ou do jstl.
Collection cat = new ArrayList();
cat.add("teste");
cat.add("teste2");
request.setAttribute("categorias", cat);
<c:forEach var="cat" items="${categorias}">
${cat}
</c:forEach>