-
Calculs dans Struts
Bonjour
Je développe une application dans laquelle j'ai besoin de faire des calculs.
Par exemple lorsque je tape mon prixPublicTTC ça me rempli un champ prixInternet et que lorsque je saisi une remise ça me calcule la remise effectuée et que ça me l'affiche dans un champ input.
J'aimerais que les calculs se fassent sur l'évenement onKeyUp ça fonctionne très bien si je fais les calculs en javascript, dès que je saisie le prix public ou la remise les autres champs sont calculés lors de la saisie.
Le problème c'est que je sais pas si je respecte bien MVC2 je souhaiterais donc effectuer les calculs avec struts. Ce que je ne comprend pas c'est que je vais devoir faire appel à une Action qui va me renvoyer sur une page jsp avec les valeurs calculer, donc à chaque saisie d'une touche du clavier dans certains champs je recharge la page.
Je voudrais donc savoir si il y a une possibilité de le faire sans recharger la page? car j'ai des listes déroulante charger depuis une bdd dans cette page et que à chaque rechargement de page ben faudra attendre que les listes soient chargés donc à chaque appuie de touche ce qui n'est pas pratique du tout
Si je fais les calculs en Javascript est ce que je respecte toujours MVC2?
J'espère avoir été clair et merci d'avance pour un petit coup de main.
-
Bonjour,
Eh oui ! C'est le principe d'une application Web : une action = une requête.
Si tu veux passer par une Action struts, tu n'as pas le choix, il me semble, que de recharger ton Form. Ce faisant tu respecteras bien le pattern MVC.
Sinon, le JavaScript c'est très bien pour faire ça ! Sauf si l'utilisateur l'a désactivé de son navigateur.
Une bonne pratique consiste donc à :
- coder les choses en utilisant une Action Struts,
- à ajouter ensuite le contrôle JavaScript qui te fera ton calcul côté client, ou qui rechargera seulement une partie de ta page via Ajax.
Ce faisant, tu respectes ton MVC, tu permets à ceux qui ont JavaScript de ne pas recharger toute la page et à ceux qui ne l'ont pas d'avoir une appli qui fonctionne ;)