12 votes

Liste Thymeleaf dans une entrée.

Je possède une structure de données comme suit :

WorkHistory{
    List jobs;
}
Jobs{
   List workDoneSentences;
}

Essentiellement, j'essaie de collecter tous les emplois passés où une personne a travaillé et le travail qu'il a fait là-bas. C'est donc une structure de liste de listes. J'aimerais savoir comment gérer cela dans l'interface utilisateur pour Thymeleaf/Spring MVC.

J'essaie de créer une interface utilisateur comme celle montrée dans les images. Il y a un tableau pour saisir des données. Pour saisir la phrase "workDone", j'aimerais ouvrir une autre fenêtre modale. Et la liste des phrases devrait être liée à l'index de l'emploi correct. entrer la description de l'image ici

entrer la description de l'image ici

"Work Done" ouvre la fenêtre modale pour saisir la liste des phrases "workDone".

Le code html que j'ai pour cela est le suivant :

                                                Travail accompli

Je ne suis pas sûr de la manière dont je peux lier la saisie "workDone". Veuillez suggérer. Merci!

5voto

Berhanu Tarekegn Points 192
Travail effectué

La partie Modal doit être configurée selon vos besoins

4voto

Gurkan Yesilyurt Points 1874

J'ai essayé comme suit et ça fonctionne correctement.

Modèle: Créez un "modal" unique pour chaque emploi. (work-list.html)

           En-tête du modal
           ×

           Fermer

      Ajouter une ligne

      Ouvrir le modal

Contrôleur:

@ModelAttribute("workHistoryDetails")
public WorkHistory populateWorkHistories() {
    return this.workHistory.getAllHistoryDetail();
}

@Autowired
WorkHistoryService workHistory;

@GetMapping("/work-list")
public String greeting(final WorkHistory workHistoryDetails) {
    return "work-list";
}

@RequestMapping(value="/work-list",method=RequestMethod.POST)
public String create(final WorkHistory workHistoryDetails) {

   this.workHistory.setJobs(workHistoryDetails);
   return "work-list";
}

// pour ajouter une nouvelle tâche à la liste des emplois
@RequestMapping(value="/work-list", params={"addRow"})
public String addRow(final WorkHistory workHistoryDetails, Model model) {

    Jobs jobRow = new Jobs("","",new ArrayList<>());
    workHistoryDetails.getJobs().add(jobRow);
    model.addAttribute("workHistoryDetails", workHistoryDetails);
    return "work-list";
}

Service: Juste pour tester :

@Service
public class WorkHistoryService {

    static WorkHistory workHistoryDetails =new WorkHistory();
    static{
        List workDones = new ArrayList<>();
        workDones.add("angular");
        workDones.add("description");
        List workDones1 = new ArrayList<>();
        workDones1.add("java,c++");
        workDones1.add("description also");

        Jobs job1 = new Jobs("Twitter", "USA",workDones); 
        Jobs job2 = new Jobs("Microsoft", "USA",workDones1);
        List jobList = new ArrayList<>();
        jobList.add(job1);
        jobList.add(job2);
        workHistoryDetails.setJobs(jobList);
    }

    public WorkHistory getAllHistoryDetail(){

        return workHistoryDetails;
    }

    public void setJobs(WorkHistory workHistory){
        workHistoryDetails.getJobs().clear();
        List jobs = workHistory.getJobs();
        for (Jobs job : jobs) {
            workHistoryDetails.getJobs().add(job);
        }
    }
}

Domaine des emplois :

public class Jobs {
   private String companyName;
   private String city;
   private List workDoneSentences;
    //constructeur par défaut important!   
    public Jobs() {
    super();
    }
   //setter getter
}

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X