Paramétrage de struts.xml
Bonjour,
J'ai un petit problème pour mapper une fonction de struts.xml vers l'Action.java.
Lorsque je clique sur supprimer, le fichier javascript est bien lu puisque le message "supprimerClient id : 2" s'affiche dans la console.
Par contre, je ne vois jamais les logs (dans le fichier des logs ...) que j'ai placé dans le clientsAction.java (ce logger fonctionne bien puisque je vois tous les logs des autres fonctions).
Pourtant, tout fonctionne bien pour d'autres méthodes de clientsAction.java.
Une piste : la fonction clientsAction.supprimer(int idClient) est la seule de mon fichier clientsAction.java à prendre l'idClient en paramètre. Est-ce que je devrais déclarer ce paramètre dans le struts.xml ?
Quelqu'un voit-il mon erreur ?
Merci beaucoup,
voici mon code dans le javascript :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| $scope.supprimerClient = function(idClient){
console.log("supprimerClient id : " + idClient);
$http.post('../gestClients/supprimer', {
"clientId":idClient
}).then(function successCallback(response) {
console.log("succes suppression client");
var index = $scope.clients.indexOf(idClient);
$scope.clients.splice(index, 1);
}, function errorCallback(response) {
console.log("problème suppression client");
});
}; |
voici mon code dans struts.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <action name="gestClients/supprimer" class="com.chezyen.commandes.actions.ClientsAction" method="suppression">
<result name="success" type="json">
<param name="includeProperties">
^client\.idClient$,
^client\.nom$,
^client\.prenom$,
^client\.adresse\.numVoie$,
^client\.adresse\.typeVoie$,
^client\.adresse\.nomVoie$,
^client\.adresse\.codePostal$,
^client\.adresse\.ville$
</param>
</result>
</action> |
voici mon code dans ClientsAction.java :
Code:
1 2 3 4 5 6
| public String suppression(int idClient){
log.info("ClientsAction - suppression - idClient : " + idClient);
Client client = new Client();
client = getClientDAO().remove(idClient);
return SUCCESS;
} |
Voici un apperçu de la console du navigateur :
Code:
1 2
| supprimerClient id : 1
gestion_clients.js:36 succes suppression client |
voi un apperçu du fichier des logs (j'ai cliqué sur le bouton de suppression mais on ne vois pas les logs de la méthode de suppression) :
Code:
1 2 3
| 2016-03-19 23:56:54,752 INFO c.c.c.a.IndexAction [http-apr-8080-exec-10] Appel de index
2016-03-19 23:56:55,034 INFO c.c.c.a.ClientsAction [http-apr-8080-exec-3] ClientsAction - repertoire
2016-03-19 23:56:55,040 INFO c.c.c.d.GenericDAO [http-apr-8080-exec-3] GenericDAO : findAll - from Client |
La totalité de mon code est sur github :
https://github.com/franckyy/commandes_CY.git
Merci,
récupération d'un attribut dans l'action ?
Bonjour,
J'ai avancé dans la compréhension de mon problème :
J'ai supprimé l'attribut dans la fonction suppression de la classe clientAction.java et j'ai vu dans les logs que cette fonction était maintenant appelée.
Donc, à partir de cette constatation, je me demande si :
1 - il faut ajouter un attribut dans le struts.xml (j'ai essayé mais je n'y suis pas parvenu)
2 - il faut retirer l'attribut de la fonction clientAction.suppression() en ajoutant l'attribut à la classe clientAction.java.
Pour l'instant, j'ai opté pour la deuxième méthode.
Mais je me heurte à un nouveau problème, l'attribut que je récupère est toujours égal à zéro....
Quelqu'un aurait-il une suggestion pour résoudre mon problème ?
Voici la nouvelle fonction suppression de clientAction :
Code:
1 2 3 4 5 6
| public String suppression(){
log.info("ClientsAction - suppression - clientId : " + clientId);
Client client = new Client();
client = getClientDAO().remove(clientId);
return SUCCESS;
} |
La classe clientAction dans la quelle j'ai rajouté l'attribut :
Code:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| package com.chezyen.commandes.actions;
import java.util.List;
import java.util.Set;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.chezyen.commandes.dao.IClientDAO;
import com.chezyen.commandes.metier.Adresse;
import com.chezyen.commandes.metier.Client;
import com.chezyen.commandes.metier.Commande;
import com.opensymphony.xwork2.ActionSupport;
public class ClientsAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private static Logger log = LogManager.getLogger(ClientsAction.class);
private IClientDAO clientDAO;
public void setClientDAO(IClientDAO clientDAO) {this.clientDAO = clientDAO;}
public IClientDAO getClientDAO() {return clientDAO;}
private int clientID;
private String clientNom;
private String clientPrenom;
private int clientCodePostal;
private String clientNomVoie;
private String clientTypeVoie;
private String clientNumeroVoie;
private String clientVille;
private Set<Commande> commandes;
public int getClientID() {return clientID;}
public void setClientID(int clientID) {this.clientID = clientID;}
public String getClientNom() {return clientNom;}
public void setClientNom(String clientNom) {this.clientNom = clientNom;}
public String getClientPrenom() {return clientPrenom;}
public void setClientPrenom(String clientPrenom) {this.clientPrenom = clientPrenom;}
public int getClientCodePostal() {return clientCodePostal;}
public void setClientCodePostal(int clientCodePostal) {this.clientCodePostal = clientCodePostal;}
public String getClientNomVoie() {return clientNomVoie;}
public void setClientNomVoie(String clientNomVoie) {this.clientNomVoie = clientNomVoie;}
public String getClientTypeVoie() {return clientTypeVoie;}
public void setClientTypeVoie(String clientTypeVoie) {this.clientTypeVoie = clientTypeVoie;}
public String getClientNumeroVoie() {return clientNumeroVoie;}
public void setClientNumeroVoie(String clientNumeroVoie) {this.clientNumeroVoie = clientNumeroVoie;}
public String getClientVille() {return clientVille;}
public void setClientVille(String clientVille) {this.clientVille = clientVille;}
public Set<Commande> getCommandes() {return commandes;}
public void setCommandes(Set<Commande> commandes) {this.commandes = commandes;}
private Client client;
public Client getClient() {return client;}
private List<Client> clients;
public List<Client> getClients() {return clients;}
private int clientId;
public int getClientId() {return clientId;}
public void setclientId(int clientId) {this.clientId = clientId;}
public String repertoire() { log.info("ClientsAction - ");
this.clients = clientDAO.findAll();
return SUCCESS;
}
public String nouveauClient() {
log.info("ClientsAction - nouveauClient - prénom : " + getClientNom());
Adresse adresse = new Adresse(getClientNomVoie(), getClientTypeVoie(), getClientNumeroVoie(), getClientCodePostal(), getClientVille());
log.info("numero adresse : " + getClientNumeroVoie());
Client client = new Client(getClientNom(), getClientPrenom(), adresse, null);
this.client = getClientDAO().save(client);
return SUCCESS;
}
public String suppression(){
log.info("ClientsAction - suppression - clientId : " + clientId);
Client client = new Client();
client = getClientDAO().remove(clientId);
return SUCCESS;
}
} |
Une partie du struts.xml qui n'a pas été modifié :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <action name="gestClients/supprimer" class="com.chezyen.commandes.actions.ClientsAction" method="suppression">
<result name="success" type="json">
<param name="includeProperties">
^client\.idClient$,
^client\.nom$,
^client\.prenom$,
^client\.adresse\.numVoie$,
^client\.adresse\.typeVoie$,
^client\.adresse\.nomVoie$,
^client\.adresse\.codePostal$,
^client\.adresse\.ville$
</param>
</result>
</action> |
la partie du fichier javascript qui concerne la suppression d'un client :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| $scope.supprimerClient = function(idClient){
console.log("supprimerClient id : " + idClient);
$http.post('../gestClients/supprimer', {
"clientId":idClient
}).then(function successCallback(response) {
console.log("succes suppression client");
var index = $scope.clients.indexOf(idClient);
$scope.clients.splice(index, 1);
}, function errorCallback(response) {
console.log("problème suppression client");
});
}; |
la console du navigateur où l'on l'attribut clientId égal à 16 :
Code:
1 2
| supprimerClient id : 16
gestion_clients.js:36 succes suppression client |
le fichier des logs où pon peut voir l'attribut clientId égal à zéro :
Code:
1 2 3 4 5 6 7
| 2016-03-20 12:32:58,059 INFO c.c.c.d.GenericDAO [localhost-startStop-9] Création GenericDAO
2016-03-20 12:32:58,097 INFO c.c.c.d.GenericDAO [localhost-startStop-9] Création GenericDAO
2016-03-20 12:33:00,374 INFO c.c.c.a.IndexAction [http-apr-8080-exec-62] Appel de index
2016-03-20 12:33:00,967 INFO c.c.c.a.ClientsAction [http-apr-8080-exec-69] ClientsAction -
2016-03-20 12:33:01,006 INFO c.c.c.d.GenericDAO [http-apr-8080-exec-69] GenericDAO : findAll - from Client
2016-03-20 12:33:05,079 INFO c.c.c.a.ClientsAction [http-apr-8080-exec-67] ClientsAction - suppression - clientId : 0
2016-03-20 12:33:05,085 INFO c.c.c.d.GenericDAO [http-apr-8080-exec-67] GenericDAO : remove |
Merci de bien vouloir m'aider,