vc não deve estar setando o atributo com o nome ‘book’ no request, ou no escopo que vc ta utilizando.
Verifique se tem alguma instrução do tipo: request.setAttribute(“book”,object);
C
corbit
Kara tava funcionando q era uma blz… e começou a dar esse xabu…
Fabrício tente me auxiliar aki… veja a situação, o que vc me pediu para olhar quanto ao setAttribute… acredito q esteja passando isto através da Action não é isto?
====> Tenho meu BookListForm.java
/*
@param book The book to set.
Popula a variável array com livros
*/
public void setBooks(Book[] bookValues){
this.book = bookValues;
}
ele se encarrega de gravar o minha lista de livros
// Cria uma instäncia da camada de negócios (get a busines logic)LibraryManagerlibraryManager=newLibraryManager();// salva o Array de Livros retornados pelo método localizado no form BeanbookListForm.setBooks(libraryManager.getAllBooks());// retorno através de um forward para saída em um jspreturnmapping.findForward("showList");}
====> Tenho meu BookList.jsp
<%-- start with an iterate over the collection books --%>
<logic:iterate name=“bookListForm” property=“books” id=“book”>
F
Fabricio_Cozer_Marti
corbit:
Kara tava funcionando q era uma blz… e começou a dar esse xabu…
Fabrício tente me auxiliar aki… veja a situação, o que vc me pediu para olhar quanto ao setAttribute… acredito q esteja passando isto através da Action não é isto?
====>TenhomeuBookListForm.java/* * @param book The book to set. * Popula a variável array com livros * */publicvoidsetBooks(Book[]bookValues){this.book=bookValues;}eleseencarregadegravarominhalistadelivros====>TenhomeuBooListAction.javapublicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){BookListFormbookListForm=(BookListForm)form;// Cria uma instäncia da camada de negócios (get a busines logic)LibraryManagerlibraryManager=newLibraryManager();// salva o Array de Livros retornados pelo método localizado no form BeanbookListForm.setBooks(libraryManager.getAllBooks());// retorno através de um forward para saída em um jspreturnmapping.findForward("showList");}====>TenhomeuBookList.jsp<%--startwithaniterateoverthecollectionbooks--%><logic:iteratename="bookListForm"property="books"id="book">
não gosto muito do Struts não … mas vou tentar te ajudar .
tente fazer isso na sua action request.setAttribute(“books”, libraryManager.getAllBooks());
e diz se funcionou.
C
corbit
kara deu o mesmo erro:
javax.servlet.ServletException: Cannot find bean book in any scope
veja como ficou o código depois da inclusão do request
// Cria uma instäncia da camada de negócios (get a busines logic)LibraryManagerlibraryManager=newLibraryManager();// salva o Array de Livros retornados pelo método localizado no form BeanbookListForm.setBooks(libraryManager.getAllBooks());request.setAttribute(“books”,libraryManager.getAllBooks());// retorno através de um forward para saída em um jspreturnmapping.findForward(“showList”);
C
corbit
Sobe!!! Fabrício e o pessoal do guj… dê uma força aí que travei legal!!!
HttpSession session = request.getSession();
session.setAttribute("book", new LibraryManager().getAllBooks());
C
corbit
thiago vc me passo este código pelo menos paraou de dar a temível mensagem: Cannot find bean book in any scope… o fato é que ele não está conseguindo popular a collection na jsp pelo setAtributte pq uso o patter do Struts com o taglib…<logic:iterate name=“bookListForm” property=“books” id=“book”>.
O fato é que ele mostra a jsp… e não carrega os dados…!? O q fazer? Kara tô perdidão… manda um foco de luz aí… :oops: valews a força…
C
corbit
O negócio é como faço para recuperar esta sessão lá no meu Jsp… estou usando o struts e o conceito de ActionForm…
os livros precisam ser persistidos em um “bookListForm”, e depois iterado para construir a tabela com os livros usando a taglib…
A tabela aparece vazia… como não mandei gravar usando o método setBook do bookListForm… não tem jeito de iterar construindo a tabela… o objeto tá na session … ok fazer?
Esse poste parece q não vai ter fim… etha se descobrir este bug tudo resolve para mim… thiago vê se dá um força aí … Postei com comentários o meu código… fiz o q vc pediu só q peguei o msm erro:
“Cannot find bean book in any scope”, de qquer forma obrigado!
J
julianostr
Depois dessa salada toda de posts, vamos lá então…
Primeiro, verifique se realmente o seu book está na sessão com isso:
<logic:present name=“book” scope=“session”>
TÁ NA SESSÃO !!!
</logic:present>
<logic:notPresent name=“book” scope=“session”>
NÃO TÁ NA SESSÃO !!!
</logic:notPresent>
É perigoso usar qualquer acesso à estruturas em sessão sem testar primeiro justamente pra evitar esse tipo de erro.
Faça isso, depois conta aí…
C
corbit
Muito sensato o que vc disse Juliano, vou testar aki… vou postar após as 21:00 valews… aí!!!
C
corbit
Postei este código que tú passou logo no início da jsp… e a msg q apareceu: cannot find bean book… tô achando q nem a jsp ele carregou na verdade…!? :oops:
Esse erro poderia ser causado também pelo Struts não ter achado o campo book no seu form declarado la no xml.
Mas pelo que eu vi você não usa nenhum campo html:text... de property chamado book não é?? Senão essa é a causa justamente por que na declaração de suas actions não tem nenhum campo book no forms.
Cara, vai dando uma analisada aí com calma por que pelo que notei você deve ter copiado esse exemplo de algum lugar e agora tá tentando fazer rodar.
F
Fabricio_Cozer_Marti
ou tente apagar o cache (pasta da sua apliacacao dentro do diretorio work, no tomcat)
R
rogerio_ribeiro
Caro Juliano… este realmente é um exemplo q peguei de um site… mas ele tava funcionando redondo… eu mesmo digitei todo o código…
o book aí citado é uma collection… ela foi populada… só q quando carregado na estrutura do struts dá esse xabu … sou novo em struts e estou aprendendo… só q este erro tá me matando…
vou dar uma checada aki… mas valeu aí Juliano e Fabrício pela força … vou ver aki depois eu posto…