Problemas com JSTL

8 respostas
simberg

Estou usando o Eclipse 3.4.0 e Apache 5.5.

Estou desenvolvendo em MVC.

No jsp

<jsp:useBean id=“dao” class=“br.direito.defesas.dao.ContatoDAO” />

<select name='selOri'>
		<option>Escolha o Professor</option>
			<c:forEach var="contatoprofessores" items="${dao.lista_p}">	
	
				<font size= 1>
					<option value=${contatoprofessores.nome_professor}>${contatoprofessores.nome_professor}
					</option>
				</font>
	
			</c:forEach>
 	</select>

Há duas coisas estranhas, no Eclipse aparece um erro dizendo:

“taglib directive for “c” does not exist or TLD is not found”

Porém o código roda normalmente.

Até aí, ok

Quando altero para contatoprofessores.idp no lugar de contatoprofessores.nome_professor

O pau acontece de fato.


exception
javax.servlet.ServletException: Unable to find a value for “idp” in object of class “br.direito.defesas.ContatoProfessores” using operator “.”

root cause
javax.servlet.jsp.el.ELException: Unable to find a value for “idp” in object of class “br.direito.defesas.ContatoProfessores” using operator “.”


O interessante é q:

package br.direito.defesas;

public class ContatoProfessores {

private String nome_professor;
private Integer depto;
private boolean casa;
private Integer idp;


public Integer getIdp() {
	return idp;
}
public void setIdp(Integer idp) {
	this.idp = idp;
}
public boolean isCasa() {
	return casa;
}
public void setCasa(boolean casa) {
	this.casa = casa;
}
public String getNome_professor() {
	return nome_professor;
}
public void setNome_professor(String nome_professor) {
	this.nome_professor = nome_professor;
}
public void setDepto(Integer depto){
	this.depto=depto;
}
public Integer getDepto(){
	return depto;
}

}


O idp está ái…

Essa é a lista que está em ContatoDAO para gerar a informação:

public List<ContatoProfessores>getLista_p() throws SQLException{
	PreparedStatement stmt=this.connection.prepareStatement("SELECT * FROM professores order by professores.nome_professor");
	ResultSet rs=stmt.executeQuery();
	
	List<ContatoProfessores> list_p = new ArrayList<ContatoProfessores>();
	while(rs.next()){
		ContatoProfessores contato_p = new ContatoProfessores();
		contato_p.setIdp(rs.getInt("idp"));
		contato_p.setDepto(rs.getInt("depto"));
		contato_p.setCasa(rs.getBoolean("casa"));
		contato_p.setNome_professor(rs.getString("nome_professor"));
		
		list_p.add(contato_p);
	}
	rs.close();
	stmt.close();
	return list_p;
}

O interessante é que se eu trocar a chamada para trazer depto, casa ou nome_professor funciona, só dá problema com o idp.

Alguém me poderia ajudar?

8 Respostas

gleise

Oi,

A única coisa que consigo pensar é que o seu projeto deve estar com problema de configuração do “build path” e por isso não está compilando suas alterações, o que faz esse erro acontecer, mesmo a propriedade estando presente no bean!

Verifique se não há nenhum problema com o projeto, incluindo o “build path”, pois é estrando o eclipse reclamar da tag c:

simberg

Será que é pelo fato do idp ser no banco de dados um inteiro gerado automáticamente (autonumeração) com chave primária - uso postgresql?

Vou testar sua sugestão.

Obrigado.

maurenginaldo

Verifique se no seu build path tem os jar’s:

jstl.jar
standard.jar

simberg

Já está no Build Path.


simberg

Em detalhes.

simberg

Mais detalhes.




simberg

Mais detalhes


simberg

Detalhes




Criado 4 de julho de 2008
Ultima resposta 8 de jul. de 2008
Respostas 8
Participantes 3