JSP com Bean

9 respostas
R

Olá! :smiley:

Tenho um bean que está diretamente dentro da pasta WEB-INF/classes/; estou tentando importá-lo para uma página jsp com a diretiva page da seguinte maneira:

<%@ page import=“FaqBean” errorPage=“error.jsp” %>
<jsp:useBean id=“faq” class=“FaqBean” />

ao tentar chamar a página o servidor reporta o seguinte erro:

C:TomcatworkStandalonelocalhostfaqsupd_menu_jsp.java:42: cannot resolve symbol
symbol : class FaqBean
location: class org.apache.jsp.upd_menu_jsp
FaqBean faq = null;

Como resolvo este problema?

9 Respostas

Adler_Medrado

DEUS SEJA LOUVADO!

Olham eu uso os Beans no diretorio web-inf/libnão sei se funciona no /classes sem nenhuma alteração no server.

tente mudar o diretorio. Esse FaqBEan esta dentro de algum pacote? Não tenho certeza mas a versão 1.4.1 só aceita beans se eles estiverem dentro de pacotes.

tente verificar isso que eu te falei e dê um retorno.

Espero ter ajudado.

Bani

É, eu já tive um problema desses de não funcionar um bean que estava solto, e aí quando coloquei dentro de um pacote parou de dar erro.
Porém mantive-o no classes mesmo (dentro do dir do pacote).

R

Criei uma pasta chamada “beans” dentro da pasta “classes” e coloquei a instrução:

import beans.*;

no código, mesmo assim continuou a ocorrer o erro:

C:TomcatwebappsfaqsWEB-INFclassesFaqRepository.java:51: cannot access beans.FaqBean
bad class file: .eansFaqBean.class
class file contains wrong class: FaqBean
Please remove or make sure it appears in the correct subdirectory of the classpath.
private FaqBean makeFaq(ResultSet results)

P.S.? Qual a diferença existente entre a instrução “import” e a instrução “package”?

Bani

As classes que estão dentro do diretório beans tem que começar com a linha:

package beans;

O import seriam para classes que não estão dentro deste diretório (caso você ainda tenha deixado alguma fora) e estejam utilizando classes dele.

A diferença é que a package está declarando em qual pacote (diretório) está a classe daquele arquivo que você está escrevendo. E a import é para “pegar” as classes que estão em outro pacotes, de forma que a sua classe consiga encontrá-las.

R

No aplicativo que eu estou tentando desenvolver também tenho alguns servlets e classes comuns do java; posso, devo ou não posso colocar tudo em um único pacote?

Bani

Os pacotes são utilizados para deixar seus aplicativos mais organizadinhos. Dependendo do número de classes que você tiver, colocar tudo em um único pacote não é a forma mais organizada possível, mas sempre é melhor que nada.
Normalmente você tem seu pacote principal, e dentro dele os subpacotes.

Mas o que é do Java, ou libs externas, em geral você mantém dentro de seus respectivos pacotes e coloca o jar de cada uma em um diretório de libs, acessível pelo classpath.

R

Por que ocorre um erro de compilação na classe command quando tento colocá-la no mesmo pacote da classe CommandException, enquanto que a classe CommandException compila normalmente?


import javax.servlet.;
import javax.servlet.http.
;

public interface Command {

public String execute(HttpServletRequest req)

throws CommandException;

}

public class CommandException extends Exception {

public CommandException ( ) {
	super( );
}

public CommandException( String msg) {
	super(msg);
}

}


Elvis.The.Pelvis

Qual o erro que está dando?

R

Eis aí o código com a tentativa de colocar as duas classes em um mesmo pacote e logo em seguida o erro na hora de compilar a classe command:


package com.teste;

public class CommandException extends Exception {

public CommandException ( ) {
	super( );
}

public CommandException( String msg) {
	super(msg);
}

}

package com.teste;

import javax.servlet.;
import javax.servlet.http.
;

public interface Command {
public String execute(HttpServletRequest req)
throws CommandException;
}

C:TomcatwebappsROOTWEB-INFclassesCommand.java:8: cannot resolve symbol
symbol : class CommandException
location: interface com.teste.Command
throws CommandException;
^

P.S: se eu tirar a linha que define o pacote as duas compilam normalmente.

Criado 18 de janeiro de 2003
Ultima resposta 21 de jan. de 2003
Respostas 9
Participantes 4