在我的控制器中,我有一个循环遍历arraylist并显示属于该arraylist中每个对象的属性的循环,我想知道应该在我的百里香代码中放什么,因为目前它仅显示第一个对象的信息。数组列表。

我的控制器班

   @GetMapping("/allSubjects")
public String shoSubjects(@ModelAttribute("subject") @Valid UserRegistrationDto userDto, BindingResult result, Model model) {
    Authentication loggedInUser = SecurityContextHolder.getContext().getAuthentication();
    String email = loggedInUser.getName();

    User user = userRepository.findByEmailAddress(email);

    ArrayList<String> subjects = new ArrayList<String>();

    for(Subject sub:user.getSubject())
    {
        subjects.add(sub.getSubjectName());
    }
    model.addAttribute("subjects", subjects);


    if(!subjects.isEmpty()) {

    for(int i = 0; i<subjects.size(); i++) {

            String subjectName = (subjects.get(i));
            Subject subject = subjectRepository.findBySubjectName(subjectName);

            String subjectName1 = subject.getSubjectName();
            Double subjectGradeGoal = subject.getSubjectGradeGoal();
            Double caCompletedWorth = subject.getCaCompletedWorth();
            Double subjectResults = subject.getSubjectResults();
            Double maxSubRemMarks = subject.getMaxSubRemMarks();
            Double marksNeededToReachGoal = subject.getMarksNeededToReachGoal();
            Boolean isGoalPossible = subject.getIsGoalPossible();
            Double highestPossibleGrade = subject.getHighestPossibleGrade();

            model.addAttribute("subjectName",subjectName1);
            model.addAttribute("subjectGradeGoal",subjectGradeGoal);
            model.addAttribute("caCompletedWorth",caCompletedWorth);
            model.addAttribute("subjectResults",subjectResults);
            model.addAttribute("maxSubRemMarks",maxSubRemMarks);
            model.addAttribute("marksNeededToReachGoal",marksNeededToReachGoal);
            model.addAttribute("isGoalPossible",isGoalPossible);
            model.addAttribute("highestPossibleGrade",highestPossibleGrade);
            return "allSubjects";

        }


    }

return "allSubjects";

}


我的html类

  <>Subject: <h4 th:text="${subjectName}" /> </>


//对于每个属性,我都有这个属性,但我没有在这篇文章中添加它。

最佳答案

假设函数user.getSubject()返回一个Subject对象的集合或数组,请执行以下操作

控制器方式

@GetMapping("/allSubjects")
public String shoSubjects(@ModelAttribute("subject") @Valid UserRegistrationDto userDto, BindingResult result, Model model) {
    Authentication loggedInUser = SecurityContextHolder.getContext().getAuthentication();
    String email = loggedInUser.getName();
    User user = userRepository.findByEmailAddress(email);

    model.addAttribute("subjects", user.getSubject());
    return "allSubjects";
}


并认为

<div th:each="subject : ${subjects}">
    Subject: <h4 th:text="${subject.subjectName}" />
    Subject Grade Goal: <h4 th:text="${subject.subjectGradeGoal}" />
    <!-- Other Properties -->
</div>


附言当它返回多个主题时,将您的方法命名为user.getSubject()是不好的。最好将方法名称修改为user.getSubjects(),这通过其名称暗示返回了多个对象。

07-26 09:29