【问题标题】:How to align the cells in the html table如何对齐html表格中的单元格
【发布时间】:2019-06-09 10:14:44
【问题描述】:

这是我的代码:

  try {

    String name = "";
    String id1 = empid.getEmpId(id);
    System.out.println("id is ===> " + id1);
    Map < Object, Object > map = reporteeservice.getReportees(id1);
    Set < Map.Entry < Object, Object >> s1 = map.entrySet();
    PrintWriter out1 = response.getWriter();
    out1.println("<html><head><style>\r\n" + "table {\r\n" + "  font-family: arial, sans-serif;\r\n" + "  border-collapse: collapse;\r\n" + "  width: 100%;\r\n" + "}\r\n" + "\r\n" + "td, th {\r\n" + "  border: 1px solid #dddddd;\r\n" + "  text-align: left;\r\n" + "  padding: 4px;\r\n" + "}\r\n" + "\r\n" + "</style>\r\n" +
     "</head><center><font size=\"20\"><body><h2>Reportees List</h2></font>" + "<table>\r\n" + "<tr>\r\n" + "<th>Number</th>" + "<th>User Id</th>" + "<th>Username</th>\r\n</center>" + "<body>");


    for (Iterator < Map.Entry < Object, Object >> iterator = s1.iterator(); iterator.hasNext();) {
     Map.Entry < Object, Object > entry = iterator.next();
     Object name1 = entry.getKey();
     Object value = entry.getValue();
     int num = Number++;

     String values = value.toString();
     //System.out.println("returning map");
     PrintWriter out = response.getWriter();
     System.out.println("values ==> " + values);
     request.setAttribute("empid", values);
     out1.println(

      // "<html><body><table>\r\n" +
      // "<tr>\r\n" +
      // "<th>User Id</th>\r\n" +
      // "<th>Username</th>\r\n" +
      "<table>" + "</tr>\r\n" + "<tr>\r\n" + "<td>" + num + "</td>" + "<td>" + values.toUpperCase() + "</td>" + "<td><a href='./Response1?empidVal=" + values + "'>" + name1 + "</a></td>" + "</tr>\r\n" + "</table></body></html>");

    }

实际上,我正在尝试将动态的地图对象(因为它们正在循环中迭代)添加到 java servlet 中的 html 表中。 我的输出是:

  Number                           User Id                     Username
   1              AR12355                                Anagha 
   2            MS12345                         Madhusu S
   3             AT12345                          Amreen Tai

但我希望以对齐的方式输出。 但我不知道如何将值附加到表中。请帮助。提前致谢

【问题讨论】:

  • 提示:看看你打开了什么标签,你关闭了什么。这些语句的顺序很重要。
  • 下的“\r\n”行是错误的。目前我猜没有打开 标签,因为你只是用
    开始了一个新表

标签: java


【解决方案1】:

一个明显的非答案:不要像这样手动生成 HMTL。人们在 20 年前就这样做了,但在 2019 年确实是个坏主意。

为什么?因为您可以很容易地生成无效的 HTML,就像您的代码一样,因为 cmets 暗示您在某一时刻生成了一个结束 TR 标记,而之前没有匹配的开始标记。

所以,真正的答案是:使用现有工具,例如JSoup。更多想法请参见here

【讨论】:

    【解决方案2】:

    你的开/关&lt;table&gt;/&lt;/table&gt;不是对称的。

    此外,您的迭代中不应该有 &lt;/body&gt;&lt;/html&gt; 标签,因为它们在结果中应该是 uniq。

    无论如何,您会更容易生成输出,并使用w3c validator 对其进行验证,并改进您的模型,直到您获得经过验证的模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 2019-04-24
      • 1970-01-01
      • 2019-08-11
      • 2010-12-14
      • 1970-01-01
      相关资源
      最近更新 更多