首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Rest应用程序在以HTML格式打印结果时出现问题

Java Rest应用程序在以HTML格式打印结果时出现问题
EN

Stack Overflow用户
提问于 2020-01-04 04:07:22
回答 2查看 41关注 0票数 0

我是一名学生,我必须使用Java Spring开发一个rest应用程序,该应用程序是一个在线分数注册表。我有一个StudentController类,其中我用Java语言实现了一个方法,以显示学生的所有科目以及与每个科目相关的成绩。我有一个哈希图的数组列表,它将一个科目与与其相关的成绩联系起来。我的问题是,我必须从Html中的列表中显示来自Hash Maps的结果,即使我尝试了互联网上的一些东西,它也不起作用。你能帮帮我吗?提前谢谢你。

下面是Java方法:

代码语言:javascript
复制
    @RequestMapping(value = "student")
    public ModelAndView showGrades()
    {
        ModelAndView modelAndView = new ModelAndView();

        List<Subject> subjects = subjectRepo.findAll();

        Student student = new Student();
        Person person = session.getUser();

        ArrayList<HashMap<Subject, ArrayList<Integer> >> grades = new ArrayList<HashMap<Subject, ArrayList<Integer> >>();

        student.setName(person.getName());
        student.setAccount(person.getAccount());

        for(int i=0; i<subjects.size(); i++){
            HashMap<Subject, ArrayList<Integer> > mappingGrades = new HashMap<Subject, ArrayList<Integer>>();
            Random rand = new Random();
            ArrayList<Integer> studentGrades = new ArrayList<Integer>();
            studentGrades.add(rand.nextInt(10));
            studentGrades.add(rand.nextInt(10));
            studentGrades.add(rand.nextInt(10));
            mappingGrades.put(subjects.get(i), studentGrades);
            student.setGrades(mappingGrades);
            grades.add(mappingGrades);
        }

        modelAndView.addObject("grades", grades);
        return modelAndView;
    }

下面是HTML代码,包括我尝试打印的代码:

代码语言:javascript
复制
    <!DOCTYPE html>
<html>

<head>
  <!-- Site made with Mobirise Website Builder v4.11.4, https://mobirise.com -->
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="generator" content="Mobirise v4.11.4, mobirise.com">
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
  <link rel="shortcut icon" href="assets/images/logo4.png" type="image/x-icon">
  <meta name="description" content="">

  <title>Student</title>
  <link rel="stylesheet" href="assets/web/assets/mobirise-icons/mobirise-icons.css">
  <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
  <link rel="stylesheet" href="assets/bootstrap/css/bootstrap-grid.min.css">
  <link rel="stylesheet" href="assets/bootstrap/css/bootstrap-reboot.min.css">
  <link rel="stylesheet" href="assets/tether/tether.min.css">
  <link rel="stylesheet" href="assets/dropdown/css/style.css">
  <link rel="stylesheet" href="assets/theme/css/style.css">
  <link rel="preload" as="style" href="assets/mobirise/css/mbr-additional.css">
  <link rel="stylesheet" href="assets/mobirise/css/mbr-additional.css" type="text/css">




</head>

<body>
  <section class="header1 cid-rLBDn2JTwv" id="header16-9">





    <div class="container">
      <div class="row justify-content-md-center">
        <div class="col-md-10 align-center">
          <h1 class="mbr-section-title mbr-bold pb-3 mbr-fonts-style display-1">
            GRADES
          </h1>

          <p class="mbr-text pb-3 mbr-fonts-style display-5">
            Subjects and related grades.
          </p>

        </div>
      </div>
    </div>

  </section>

  <section class="engine"><a href="https://mobirise.info/s">bootstrap theme</a></section>
  <section class="services5 cid-rLBDGcNu8T" id="services5-b">
    <!---->

    <!---->
    <!--Overlay-->

    <!--Container-->
    <div class="container">
      <div class="row">
        <!--Titles-->
        <div class="title pb-5 col-12">


        </div>
        <!--Card-1-->
        <div class="card px-3 col-12">
          <div class="card-wrapper media-container-row media-container-row">
            <div class="card-box">
              <div class="top-line pb-3">
                <h4 class="card-title mbr-fonts-style display-5">
                  <table>
                    <tbody>
                    <form action="student" method="showGrades">

                    <div th:each="map : ${grades}">
                        <div th:each="mapEntry : ${map}">
                          <span th:text="${mapEntry.key}"></span> =
                          <span th:text="${mapEntry.value}"></span>
                        </div>
                      </div>
                    </form>

                    </tbody>
                  </table>
                </h4>
                <p class="mbr-text cost mbr-fonts-style m-0 display-5">
                  $400
                </p>
              </div>
              <div class="bottom-line">

              </div>
            </div>
          </div>
        </div>
        <!--Card-2-->

        <!--Card-3-->

        <!--Card-4-->

        <!--Card-5-->

        <!--Card-6-->

        <!--Card-7-->

        <!--Card-8-->

        <!--Card-9-->

        <!--Card-10-->

        <!--Card-11-->

        <!--Card-12-->

      </div>
    </div>
  </section>

  <script src="assets/web/assets/jquery/jquery.min.js"></script>
  <script src="assets/popper/popper.min.js"></script>
  <script src="assets/bootstrap/js/bootstrap.min.js"></script>
  <script src="assets/tether/tether.min.js"></script>
  <script src="assets/smoothscroll/smooth-scroll.js"></script>
  <script src="assets/dropdown/js/nav-dropdown.js"></script>
  <script src="assets/dropdown/js/navbar-dropdown.js"></script>
  <script src="assets/touchswipe/jquery.touch-swipe.min.js"></script>
  <script src="assets/theme/js/script.js"></script>

</body>

</html>
EN

回答 2

Stack Overflow用户

发布于 2020-01-04 04:44:37

在您提供的代码中,mapEntry.key的值是一个Subject对象,mapEntry.value的值是一个ArrayList。你需要告诉胸腺叶如何输出这些对象。如果Subject有一个适当的toString方法,它会像您期望的那样工作,但ArrayList不会正确打印。您需要使用另一个嵌套的each语句,或者需要将其连接到单个字符串中。

票数 0
EN

Stack Overflow用户

发布于 2020-01-04 16:49:18

我用嵌套的each语句修改了我在Deadron中理解的HTML代码,但它仍然不起作用。代码如下:

代码语言:javascript
复制
<form action="student" method="showGrades">
     <tr th:each="grades: ${grades}">
        <div th:each="map : ${grades}">
             <div th:each="mapEntry : ${map}">
                  <span th:text="${mapEntry.key}"></span> =
                  <span th:text="${mapEntry.value}"></span>
             </div>
        </div>
     </tr>
  </form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59584720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档