通过 spring 在邮件中使用 setText() 方法从 List<> 发送值

Send values from List<> with setText() method in mail through spring

我有一个列表,其中包含要通过邮件发送的值。但是在邮件中我只得到最后一个值,而不是所有值。下面是我的代码

private String sName[];
private String sID[];
 method abc()
{
  some code.....
 final int numberOfStudentsAdded = recentlyJoinedStudents.size();
 sName= new String[numberOfStudentsAdded];
 sID=new String[numberOfStudentsAdded]
for(int i=0;i<numberOfStudentsAdded;i++)
    {
        for(final Student s :recentlyJoinedStudents )
        {
            sName[i]=s.getName();
            sID[i]=s.getId();
        }
        message.setText(
                "<table><tr><td><h6>Student Name</h6></td><td><h6>Student ID</h6></td></tr><tr><td>"
                        + sName[i] + "</td><td>" + sID[i] + "</td><td></tr></table>", true);

    }}

上面代码的问题是假设我的列表中有 3 个学生。但它给出了最后一个学生的记录。我想要所需的输出为

学生姓名学号

abc 1

xyz 2

pqr 3

但我得到的输出是

学生姓名学号

pqr 3

我怎样才能做到这一点。我的代码有什么问题。

正如@a-sir 所说,您每次都通过将值设置为

来覆盖它

将您的代码更改为以下

private String sName[];
private String sID[];
 method abc()
{
  some code.....
 final int numberOfStudentsAdded = recentlyJoinedStudents.size();
 sName= new String[numberOfStudentsAdded];
 sID=new String[numberOfStudentsAdded];
StringBuilder dataTable = new StringBuilder("<table><tr><td><h6>Student Name</h6></td><td><h6>Student ID</h6></td></tr>");
for(int i=0;i<numberOfStudentsAdded;i++)
    {

        for(final Student s :recentlyJoinedStudents )
        {
            sName[i]=s.getName();
            sID[i]=s.getId();
        }
        dataTable.append("<tr><td>"+ sName[i] + "</td><td>" + sID[i] + "</td><td></tr>");
    }
    dataTable.append("</table>"); 
    message.setText(dataTable.toString(), true);
}

您总是被 属性 和 message.setText("") 的短信覆盖。而且我不明白这两个循环。试试这段代码:)

    String text = "<table><tr><td><h6>Student Name</h6></td><td><h6>Student ID</h6></td></tr>";
    for(int i=0;i<recentlyJoinedStudents.size();i++) {
        text += "<tr><td>" + recentlyJoinedStudents.get(i).getName() + "</td><td>" 
                + recentlyJoinedStudents.get(i).getId() + "</td><td></tr>";
    }
    text += "</table>";
    System.out.print(text);