Chamar uma classe de um JSP

Pessoal,

Tenho uma classe e preciso chama-la em um jsp. Já tentei de diversas formas:

model.FiltroProjetos.FiltroProjetos2(); //CHAMANDO SEM CONSTRUTOR

model.FiltroProjetos.FiltroProjetos(); //CHAMANDO COM CONSTRUTOR

FiltroProjetos lere = new FiltroProjetos();
lere.FiltroProjetos();

Já que o JSP se ‘torna um servlet’ qndo executado, a forma de chamar uma classe seriam estas. Alguem tem uma soluçao?

Vlw

Pessoal, alguem sabe me responder?

Pelo que entendi vc esta usando scriptlet ,
primeiro vc deve importar ira ficar parecido com isto .

<%@ page import="java.util.*,viewcontroller.iframe.*, model.*" errorPage="Error.jsp"%>

e vc ira usar uma classe normalmente

  ClasseA a  = new ClasseA();
  ClasseB b  = new ClasseB("jose" , 1);

[quote=edmarr]Pelo que entendi vc esta usando scriptlet ,
primeiro vc deve importar ira ficar parecido com isto .

<%@ page import="java.util.*,viewcontroller.iframe.*, model.*" errorPage="Error.jsp"%>

e vc ira usar uma classe normalmente

  ClasseA a  = new ClasseA();
  ClasseB b  = new ClasseB("jose" , 1);

[/quote]

importar a pagina nao seria a mesma coisa que pacote.classe.metodo??? Ai estaria especificando o pacote que ela esta.

Tem outras formas de chamar uma classe em um jsp?

Exatamente seria importar o seu pacote e talz ,

Existe outras maneiras sim , mas são mais complicadas
dai vc teria q usar JSTL , para importação e manipulação .

[quote=edmarr]Exatamente seria importar o seu pacote e talz ,

Existe outras maneiras sim , mas são mais complicadas
dai vc teria q usar JSTL , para importação e manipulação .[/quote]

Então porque nao funciona???

[quote=Ellensmp][quote=edmarr]Exatamente seria importar o seu pacote e talz ,

Existe outras maneiras sim , mas são mais complicadas
dai vc teria q usar JSTL , para importação e manipulação .[/quote]

Então porque nao funciona???[/quote]
Não Entendi ?

[quote=edmarr][quote=Ellensmp][quote=edmarr]Exatamente seria importar o seu pacote e talz ,

Existe outras maneiras sim , mas são mais complicadas
dai vc teria q usar JSTL , para importação e manipulação .[/quote]

Então porque nao funciona???[/quote]
Não Entendi ?[/quote]

Se importar um pacote por uma diretiva <%@%> e colocar pacote.classe.metodo é a mesma coisa, porque qndo coloco pacote.classe.metodo não funciona?

Simplesmente porque vc deve instanciar o objeto ,
agora para melhor entendimento de quem for dar manutenção posterior
use sempre import ou JSTL .

[quote=edmarr]Simplesmente porque vc deve instanciar o objeto ,
agora para melhor entendimento de quem for dar manutenção posterior
use sempre import ou JSTL . [/quote]

Vlw pela dica, mas ainda continuo sem conseguir que chame a classe. Fiz o seguinte em meu jsp na primeira tentativa:

<%@ page import="java.util.*, model.*" errorPage="Error.jsp"%> 
FiltroProjetos a  = new FiltroProjetos(); 
a.FiltroProjetos2();

E deu o seguinte erro:

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: /abas.jsp(2,1) Page directive: illegal to have multiple occurrences of errorPage with different values (old: , new: Error.jsp)
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:236)
	org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:175)
	org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:550)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
	org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
	org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222)
	org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
	org.apache.jasper.compiler.Validator.validateDirectives(Validator.java:1441)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:173)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:317)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

Lembrando que a pag. ‘Error.jsp’ se encontra onde todos os outros JSP estão.

A segunda tentantiva em meu JSP foi:

<%@ page import="java.util.*, model.*" %> 
FiltroProjetos a  = new FiltroProjetos(); 
a.FiltroProjetos2();

E deu o seguinte erro:

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 46 in the jsp file: /abas.jsp
The method FiltroProjetos2() is undefined for the type FiltroProjetos
43: 								
44: 				if (session.getAttribute("perfil").equals("adm")){
45: 					FiltroProjetos a  = new FiltroProjetos();  
46: 					a.FiltroProjetos2();					
47: 					//model.FiltroProjetos.FiltroProjetos2();
48: 					//lere.FiltroProjetos();
49: 					//out.print("Eu sou adm");			


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:93)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:451)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:319)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

E agora? O que é isso?

Acabei de receber uma msg em meu email do forum dizendo que alguem tinha me respondido no forum. E agora nao vi nenhuma resposta… será que o forum esta com problema?

Posta o seu codigo completo ai da pagina jsp , para eu poder dar uma olhada .

Não tem mta coisa…

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.util.*, model.*"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="CSS/cabecalho_home.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Abas - SupllyWeb</title>
</head>

<body>
<table border="0" width="600" height="50">
<tr>
	<td width="9">
    	<table width="100%" height="100%">
        <tr>	
            <td>
            	<img src="imagens/linhaProjetosCliente2.jpg" />
            </td>
        </tr>
       	</table>
    </td>
	<td width="575" valign="top">
    	<table>
        <tr>
        	<td><img src="Titulos/MeusProjetos.gif" /></td>
        </tr>
        <tr><td>&nbsp;</td></tr>
        <tr>
        	<%//! String perfilSessao = (String) session.getAttribute("perfil"); %>

			
            <%
				//session.getAttribute("perfil").equals;
				//out.print("Ellen");
				//out.println(session.getAttribute("perfil"));
				//if(session.getAttribute("perfil") != null) {
					
				//String var = session.getAttribute("perfil");
				//out.print(var);
				
				//FiltroProjetos lere = new FiltroProjetos();
								
				if (session.getAttribute("perfil").equals("adm")){
					FiltroProjetos a  = new FiltroProjetos();  
					a.FiltroProjetos2();					
					//model.FiltroProjetos.FiltroProjetos2();
					//lere.FiltroProjetos();
					//out.print("Eu sou adm");			
				} else if(session.getAttribute("perfil").equals("analista")){
					out.print("Sou analista");	
				} else if(session.getAttribute("perfil").equals("gerente")){
					out.print("Sou gerente");
				} else if(session.getAttribute("perfil").equals("coordenador")){
					out.print("Sou coordenador");
				} else if(session.getAttribute("perfil").equals("usuario")){
					out.print("Sou usuario");
				}
			%>        
            <td valign="top"><a href="TIG.jsp" target="_parent"><font color="#000000">TIG</font></a></td>
        </tr>
        </table>
    </td>
</tr>
</table>
</body>
</html>

Não está compilando a sua jsp, eu acho que é por causa do errorPage

ao invés de fazer

<%@ page import="java.util.*, model.*" errorPage="Error.jsp"%>  

tente fazer

<%@ page import="java.util.*"%> <%@ page import="model.*.*"%>

E veja se funciona…

[quote=André Fonseca]Não está compilando a sua jsp, eu acho que é por causa do errorPage

ao invés de fazer

<%@ page import="java.util.*, model.*" errorPage="Error.jsp"%>  

tente fazer

<%@ page import="java.util.*"%> <%@ page import="model.*.*"%>

E veja se funciona…[/quote]

Por algum motivo que eu nao sei qual não funcionou! =(

Oi

Agora que eu vi que voce fez duas tentativas
A primeira era o erro do errorPage mesmo, não funciona daquele jeito, você pode ver que este erro nao aparece na segunda tentativa

Mas a segunda chamada

<%@ page import="java.util.*, model.*" %> FiltroProjetos a = new FiltroProjetos(); a.FiltroProjetos2();

Está dizendo

An error occurred at line: 46 in the jsp file: /abas.jsp The method FiltroProjetos2() is undefined for the type FiltroProjetos

Isto quer dizer que o seu servidor não está achando esté método. Ele está achando a classe - ou seja, o import funciona - pois senão o erro seria outro.

Você já reparou se o método está sendo chamado com o nome certo, inclusive com a letra minuscula ou maiuscula??

[quote=André Fonseca]Oi

Agora que eu vi que voce fez duas tentativas
A primeira era o erro do errorPage mesmo, não funciona daquele jeito, você pode ver que este erro nao aparece na segunda tentativa

Mas a segunda chamada

<%@ page import="java.util.*, model.*" %> FiltroProjetos a = new FiltroProjetos(); a.FiltroProjetos2();

Está dizendo

An error occurred at line: 46 in the jsp file: /abas.jsp The method FiltroProjetos2() is undefined for the type FiltroProjetos

Isto quer dizer que o seu servidor não está achando esté método. Ele está achando a classe - ou seja, o import funciona - pois senão o erro seria outro.

Você já reparou se o método está sendo chamado com o nome certo, inclusive com a letra minuscula ou maiuscula??[/quote]

Já notei isso sim… observe minha classe:

package model;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class FiltroProjetos {
	private ConexaoMysql conexaoMysql;
	
	public void FiltroProjetos2(){
		String statusProjeto = "Em andamento";
		
		conexaoMysql = new ConexaoMysql(); 
	    Statement state = null;   
	    ResultSet rs = null;   
	    
	    try {  
	     	state = conexaoMysql.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);   
	        rs = state.executeQuery("Select nome from projeto where statusProjeto = '" + statusProjeto + "'");
	        
            while (rs.next()) {
	            String nome = rs.getString("nome");
	            
	            System.out.println("Nome:" + nome);
        }
	    } catch(Exception erro) {   
	        System.out.println("Erro ocorrido na classe FiltroProjetos: n" + erro);   
	    } finally {   
	    	if(state != null){   //fechar os statments
				try {
					state.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}  
	    	}
		}
	}
}

e meu jsp

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.util.*"%>   
<%@ page import="model.FiltroProjetos.*"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="CSS/cabecalho_home.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Abas - SupllyWeb</title>
</head>

<body>
<table border="0" width="600" height="50">
<tr>
	<td width="9">
    	<table width="100%" height="100%">
        <tr>	
            <td>
            	<img  />
            </td>
        </tr>
       	</table>
    </td>
	<td width="575" valign="top">
    	<table>
        <tr>
        	<td><img  /></td>
        </tr>
        <tr><td>&nbsp;</td></tr>
        <tr>
        	<%//! String perfilSessao = (String) session.getAttribute("perfil"); %>

			
            <%
				//session.getAttribute("perfil").equals;
				//out.print("Ellen");
				//out.println(session.getAttribute("perfil"));
				//if(session.getAttribute("perfil") != null) {
					
				//String var = session.getAttribute("perfil");
				//out.print(var);
				
				//FiltroProjetos lere = new FiltroProjetos();
								
				if (session.getAttribute("perfil").equals("adm")){
					FiltroProjetos a  = new FiltroProjetos();  
					a.FiltroProjetos2();					
					//model.FiltroProjetos.FiltroProjetos2();
					//lere.FiltroProjetos();
					//out.print("Eu sou adm");			
				} else if(session.getAttribute("perfil").equals("analista")){
					out.print("Sou analista");	
				} else if(session.getAttribute("perfil").equals("gerente")){
					out.print("Sou gerente");
				} else if(session.getAttribute("perfil").equals("coordenador")){
					out.print("Sou coordenador");
				} else if(session.getAttribute("perfil").equals("usuario")){
					out.print("Sou usuario");
				}
			%>        
            <td valign="top"><a  target="_parent"><font color="#000000">TIG</font></a></td>
        </tr>
        </table>
    </td>
</tr>
</table>
</body>
</html>

Oi

Não precisa do asterisco no final do import da JSP

tente mudar

<%@ page import="model.FiltroProjetos.*"%> 

para

<%@ page import="model.FiltroProjetos"%> 

Esta classe está dentro de algum jar ? Como você está fazendo o deploy?

[quote=André Fonseca]Oi

Não precisa do asterisco no final do import da JSP

tente mudar

<%@ page import="model.FiltroProjetos.*"%> 

para

<%@ page import="model.FiltroProjetos"%> 

Esta classe está dentro de algum jar ? Como você está fazendo o deploy?[/quote]

DEU CERTO!!! Estou fazendo o deploy sim e agora Fiz como vc falou:

<%@ page import="model.FiltroProjetos"%>

A questão agora é porque não funcionou quando eu coloquei o model.* e quando coloquei model.FiltroProjetos.*?
Deveria funcionar nao?

E outra, se import é a mesmo que pacote.classe.metodo porque tbm nao funcionou?

Oi

Quando você colocou o model.* o erro era outro, era por causa do erroPage, aquela sintaxe é errada