Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Portails Java Discussion :

Fonction Delete pour un objet?


Sujet :

Portails Java

  1. #1
    Candidat au Club
    Fonction Delete pour un objet?
    Bonjour à tous!

    J'en suis à ma deuxième semaine de développement en Liferay et bien qu'ayant essayé de suivre le livre "Liferay In Action" pour débuter, j'ai pris la décision de me lancer à partir d'un tuto que j'ai trouvé sur le net et de faire mes propres tests.

    Ainsi, j'ai une classe "Library" reliée à ma base de donnée, tout est niquel.
    J'arrive à créer des objets sur Liferay qui alimentent ma base de donnée correctement.

    Maintenant, j'ai affiché le contenu de ma base de donnée sous forme de liste de livres (oui, mon portlet sert à enregistrer des livres) et je souhaite ajouter une fonction pour en supprimer un. Alors voici où j'en suis:

    (extrait du fichier list.jsp
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <table border="1" width="80%">
    <tr>
    <th>Book Title</th>
    <th>Author</th>
    <th>Date Added</th>
    <th>Delete</th>
    </tr>
    <%
    for (LMSBook book : books) {
    %>
    <tr>
    <td><%= book.getBookTitle() %></td>
    <td><%= book.getAuthor() %></td>
    <td><%= book.getDateAdded() %></td>
     
    <%
    String no="no";
    PortletURL deleteBookURL = renderResponse.createActionURL();
    deleteBookURL.setParameter(
    ActionRequest.ACTION_NAME, "deleteBook");
    deleteBookURL.setParameter(Long.toString(book.getBookId()), no);
    %>
     
    <td><a href="<%= deleteBookURL %>">Supprimer</a></td>
     
    </tr>
    <%
    }
    %>
    </table>


    (extrait du fichier LibraryPortlet.java
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public void deleteBook(ActionRequest actionRequest,
    			ActionResponse actionResponse, String bookId, String no)
    					throws IOException, PortletException, PortalException {
     
    		Long bookId2= Long.parseLong(bookId);
     
     
    		try { LMSBookLocalServiceUtil.deleteLMSBook(bookId2);
    		}
    		catch (SystemException e){
    			e.printStackTrace();	
    		}
     
     
    	}


    Je ne sais pas trop quoi vous donner d'autre comme informations, j'ai fais pas mal de tests à droite à gauche, et mon code ne fonctionne pas. Sur mon portail Liferay en localhost, le message d'erreur qui survient quand je clique sur "Supprimer" est "You have entered invalid data. Please try again."

    Je vous remercie !

  2. #2
    Candidat au Club
    Hello !

    Et bien j'ai résolu moi même mon problème; voici la fonction delete:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    	public void deleteBook(ActionRequest actionRequest,
    			ActionResponse actionResponse)
    					throws IOException, PortletException, PortalException {
     
    		try{
    			long bookId= ParamUtil.getLong(actionRequest, "bookId");
     
    			LMSBookLocalServiceUtil.deleteLMSBook(bookId);
     
    			PortletURL redirectURL = getRedirectURL(actionRequest, "/html/library/list.jsp", 
    			WindowState.MAXIMIZED, PortletMode.VIEW, PortletRequest.RENDER_PHASE);
    			actionResponse.sendRedirect(redirectURL.toString());     		
     
    		}
    		catch (SystemException e){
    			e.printStackTrace();	
    		}


    Voilà je suis revenu vous donner ça au cas où quelqu'un serait dans le même cas
    A bientôt !