Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JAVA/JSP] richiamare metodo java da una jsp

    Salve a tutti!
    Ho un problema, sto realizzando un progetto con netbeans e mi trovo nella situazione di dover richiamare un metodo java che restituisca una lista di categorie da una form in una jsp (questa form mi serve per inserire nuove categorie ma che siano figlie di quelle già presenti in questo elenco)!
    Ora un metodo l'avevo trovato usando il controllore e inserendo la lista come attributo, il problema è che tenermi una variabile di queste dimensione come attributo non mi pare una buona idea.. volevo quindi accedere al metodo (che da controllore viene richiamato da una facaderemote) direttamente.. ho quindi scritto il seguente codice:

    <%

    ejb.GestoreCategoriaBeanRemote gestoreCategoria= null;
    java.util.List<ejb.Categoria> elencoCat= null;
    elencoCat = gestoreCategoria.mostraElenco();

    if (elencoCat != null) {

    %>

    nella JSP ma all'esecuzione quando clicco sul link alla pagina jsp mi lancia un eccezione di questo tipo:

    HTTP STATUS 500

    type Exception report

    message

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

    exception

    org.apache.jasper.JasperException: java.lang.NullPointerException
    root cause

    java.lang.NullPointerException
    note The full stack traces of the exception and its root causes are available in the Sun Java System Application Server 9.1_02 logs.


    Sapreste indicarmi come richiamare un metodo java da jsp in modo pulito?

    grazie!

  2. #2
    vi posto il codice della pagina jsp:

    codice:
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Creazione Categoria</title>
           
            
            
        </head>
        <body>
            <h2>Crea Categoria</h2>	
            <form name="cercaCategorie" action="GestoreInterfaccia" method="POST">
                <input type="hidden" name="azione" value="mostraElencoCategoria" />  
                
                <input type="submit" value="carica" class="button"/>
                
            </form>     
            
            <form action="ControllerLogic" name="form_cat" method="post">
                
                <input type="hidden" name="choice" value="creaCategoria"/>
                
                
                <fieldset>
                    
                    
                    <legend>Dati Categoria</legend>
                    
                    <table id="reg-table-login">
                        <tr><th>Categoria</th><td><input type="text" name="categoria"/></td></tr>
                        <tr><th>Codice Categoria</th><td><input type="text" name="cod_cat"/></td></tr>
                        
                        <tr><th>Categoria Principale
                            <select name="categoriaPrincipale" >
                                
    <%
    
                ejb.GestoreCategoriaBeanRemote gestoreCategoria = null ;
                java.util.List<ejb.Categoria> elencoCat= null;
                elencoCat = gestoreCategoria.mostraElenco();
    
                if (elencoCat != null) {
    
                    for (ejb.Categoria cat : elencoCat) {
    
    %>
                                
                                <option value=<%=cat.getCod_cat()%> > <%=cat.getNome_cat()%> </option>
                                
    <%}
                 } else {
    %>
                                
                                <option value="1"> root</option>
                                
                                
                                
                                <%  }%>
                            </select>
                        </th><td>
                        
                    </table>
                </fieldset>
                
                
    
    Tutti i dati contrassegnati con * sono obbligatori</p>
                
                <input type="submit" name="invio" value="Entra"/>
                <input type="reset" name="annulla" value="Annulla"/>
                
                
            </form>   
            
        </body>
    </html>
    e del metodo java remote richiamato:


    codice:
    package ejb;
    
    import java.util.List;
    import javax.ejb.Remote;
    
    /**
     *
     * @author alessandro
     */
    @Remote
    public interface GestoreCategoriaBeanRemote {
    
        public Categoria crea(String nome, int codCat, int padreCat);
    
        public List mostraElenco();
        
    }
    e del facade corriposndente:

    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package ejb;
    
    import java.util.List;
    import javax.ejb.EJB;
    import javax.ejb.Stateless;
    
    /**
     *
     * @author alessandro
     */
    @Stateless
    public class GestoreCategoriaBean implements GestoreCategoriaBeanRemote {
    
        // Add business logic below. (Right-click in editor and choose
        // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
        @EJB
        private CategoriaFacadeRemote categoriaFacade;
    
        /** Creates a new instance of GestoreCategoriaBean */
        public GestoreCategoriaBean() {
        }
    
        public Categoria crea(String nomeCat, int codCat, int padreCat) {
    
            if (!categoriaFacade.findSome(codCat).isEmpty()) {
                return null;
            }
            
            Categoria cat = new Categoria();
            cat.setNome_cat(nomeCat);
            cat.setCod_cat(codCat);
            cat.setPadre_cat(padreCat);
    
            categoriaFacade.create(cat);
    
            return cat;
        }
    
        public List mostraElenco() {
    
            return categoriaFacade.findAll();
        }
    
        
    }
    gli altri metodi richiamati funzionano tutti perchè già testati per la creazione dell'utente..

    grazie ancora...

  3. #3
    Aggiungo che a quanto pare l'errore è nell'espressione:

    elencoCat = gestoreCategoria.mostraElenco();

    che a quanto pare restituisce null, il mio problema è proprio qui.. all'interno del controllorLogic questa espressione mi restituisce una lista di elementi che vanno a finire in elencoCat, mentre ora usando questo sistema nella jsp questo non avviene.. essendo io un pò neofita nel linguaggio jsp probabilmente ho trascurato qualche parte o forse questo sistema proprio non può essere usato..

    a questo punto come posso creare una form per la creazione di categorie che mi permetta di vedere tutte le categorie già esistenti e inserite nel database?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.