javax.servlet.ServletException: Feijão [nome] não foi encontrado dentro do escopo

StackOverflow https://stackoverflow.com/questions/270444

  •  06-07-2019
  •  | 
  •  

Pergunta

Estou recebendo este erro:

javax.servlet.ServletException: bean not found within scope

em uma página com este no topo.

<jsp:useBean id="bean" type="com.example.Bean" scope="request" />

Existe a classe no classpath, ele trabalhou esta manhã, e eu não entendo o que não foi encontrado dentro dos meios de escopo.

Como isso é causado e como posso resolver isso?

Foi útil?

Solução

Você precisa o atributo class em vez do atributo type.

A seguir:

<jsp:useBean id="bean" type="com.example.Bean" scope="request" />

basicamente o seguinte nos bastidores:

Bean bean = (Bean) pageContext.getAttribute("bean", PageContext.REQUEST_SCOPE);

if (bean == null) {
    throw new ServletException("bean not found within scope");
}

// Use bean ...

Enquanto o seguinte:

<jsp:useBean id="bean" class="com.example.Bean" scope="request" />

faz basicamente o seguinte nos bastidores:

Bean bean = (Bean) pageContext.getAttribute("bean", PageContext.REQUEST_SCOPE);

if (bean == null) {
    bean = new Bean();
    pageContext.setAttribute("bean", bean, PageContext.REQUEST_SCOPE);
}

// Use bean ...

Se ele tem trabalhado antes e não funcionou "em uma súbita", então isso significa que trabalho algo , que é responsável por colocar o feijão no âmbito parou. Por exemplo, um servlet que faz o seguinte na doGet():

request.setAttribute("bean", new Bean());
request.getRequestDispatcher("page.jsp").forward(request, response);

Talvez você tenha invocado a página JSP diretamente pela URL em vez de chamar o servlet por URL. Se você gostaria de acesso directo desativar a páginas JSP, em seguida, colocá-los em /WEB-INF e para a frente em vez.

Outras dicas

Você deve adicionar

<jsp:useBean id="givingFormBean" type="some.packg.GivingForm" scope="request" />

Porque por padrão, o feijão é olhei no página escopo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top