Bonjour chers membre , je suis un peu bloque en écrivant mon algorithme de simulation de génération de tableau d'amortissement de payment constant . Bon l'algo marche sur la console au niveau du contrôleur mais au moment de renvoyer le tableau au niveau de la vue jsp , les deux valeurs le numero de mois de paiement et le solde apres chaque paiement affiche la même valeur alors que au niveau du console il s 'affiche correctement .
Je rappelle que apres chaque mois je dois avoir un nouveau solde pour le credit .
Bon voici le code , j ai mis le service qui généré le tableau d'amortissement a l'interieur .
Controleur:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
@RequestMapping(value = "/DossierCreditSimuationConstant", method = RequestMethod.GET)
public String CreditSimuationConstant(@ModelAttribute("creditSimulation") TabAmortissement tabAmortissement, Model model) {
    //Nos propriete et elememt de simualtion
    System.out.println("Param" + tabAmortissement.getMontantDemande() + "" + tabAmortissement.getTauxInteret() + "" + tabAmortissement.getDureepretEnMois() + "" + tabAmortissement.getPeriodiciteRemboursement());
    //ModePaiement
    List<TabAmortissement> TableauAmortissementConstant = new ArrayList<TabAmortissement>() ;
    String periodiciteRemboursement = tabAmortissement.getPeriodiciteRemboursement();
    Double taux = tabAmortissement.getTauxInteret();
    int positionMois = 0;
    int nombreMois = tabAmortissement.getDureepretEnMois();
    int nbmoisCalculSoldeMois = nombreMois;
    Double montantCredit = tabAmortissement.getMontantDemande();
    if (periodiciteRemboursement.equals("constant")) {
        //Nomre annne , soit 1 ans = 12 mois
        Double montantInteret = montantCredit * taux;
        Double montantTotalApayer = montantCredit + montantInteret;
        Double montantTotalApayerCalculSoldeCredit = montantCredit + montantInteret;
        Double montantMensuelleApayer = montantTotalApayer / nombreMois;
        Double montantMensuelleCapitalApayer = montantCredit / nombreMois;
        Double montantMensuelleInteretApayer = montantInteret / nombreMois;
        Double soldeMensuelleApresPaiement;
        Double tamponSolde;
        //premierMois , montantApayer , Capital , Interet , Solde ,
        for (int i = 0; i < nombreMois; i++) {
            //Calul Solde Apres Chaque Paiement
            soldeMensuelleApresPaiement = montantTotalApayerCalculSoldeCredit - (montantTotalApayerCalculSoldeCredit / nbmoisCalculSoldeMois);
            tamponSolde = soldeMensuelleApresPaiement;
            montantTotalApayerCalculSoldeCredit = tamponSolde;
            //------------------------------------------------------------------
            tabAmortissement.setPositionMois(positionMois);
            tabAmortissement.setMontantMensuelleApayer(montantMensuelleApayer);
            tabAmortissement.setMontantMensuelleCapitalApayer(montantMensuelleCapitalApayer);
            tabAmortissement.setMontantMensuelleInteretApayer(montantMensuelleInteretApayer);
            tabAmortissement.setSoldeMensuelleApresPaiement(soldeMensuelleApresPaiement);
           //---------------
            TableauAmortissementConstant.add(tabAmortissement);
            //--
            positionMois ++;
            nbmoisCalculSoldeMois --;
        }
        //bouclonsPourTester
        for (int y = 0 ; y <= nombreMois ; y++ ){
            System.out.println("Tableau :::::::"+TableauAmortissementConstant);
        }
    }//endIf
    model.addAttribute("TableauAmortissementConstant", TableauAmortissementConstant);
 
    return "/Dossier/ViewFormDossierCreditSimulation";
}
Vue:
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
31
32
33
 
<c:if test="${TableauAmortissementConstant != null}">
                            <table id=" " class="table table-striped table-bordered" cellspacing="0" width="100%">
                                <thead class="TitreAcceul">
                                    <tr>
                                        <th>MoisPaiement</th>
                                        <th>MontantMensuelleTotalApayer</th>
                                        <th>MontantCapital</th>
                                        <th>MontantInteret</th>
                                        <th>SoldeCreditApresPaiment</th>
                                    </tr>
                                </thead>
                                <tfoot class="TitreAcceul">
                                    <tr>
                                        <th>MoisPaiement</th>
                                        <th>MontantMensuelleTotalApayer</th>
                                        <th>MontantCapital</th>
                                        <th>MontantInteret</th>
                                        <th>SoldeCreditApresPaiment</th>
                                    </tr>
                                </tfoot>
                                <c:forEach items="${TableauAmortissementConstant}" var="tabAmorConstant">
                                    <tr class="TitreAcceul">
                                        <td>${tabAmorConstant.positionMois}</td>
                                        <td>${tabAmorConstant.montantMensuelleApayer}</td>
                                        <td>${tabAmorConstant.montantMensuelleCapitalApayer}</td>
                                        <td>${tabAmorConstant.montantMensuelleInteretApayer}</td>
                                        <td><b>${tabAmorConstant.soldeMensuelleApresPaiement}</b></td>
                                    </tr>
                                </c:forEach>
                            </table>
 
                        </c:if>
Modele : TabAmortissement
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
 
public class TabAmortissement {
//Parametre
    private int positionMois;
    private  Double montantDemande ;
    private  Double tauxInteret ;
    private int dureepretEnMois ;
    private String periodiciteRemboursement ;
  //VarCalculed
  private Double montantInteret;
  private Double montantTotalApayer;
  private Double montantMensuelleApayer;
  private Double montantMensuelleCapitalApayer;
  private Double montantMensuelleInteretApayer;
  private Double soldeMensuelleApresPaiement;
//
    }
Merci de votre aide .