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

时间:2016-10-25 09:31:23

标签: java spring email settext

我有一个List,其中包含我想通过邮件发送的值。但在邮件中我只获得最后一个值,而不是所有值。以下是我的代码

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

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

2 个答案:

答案 0 :(得分:1)

使用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);

答案 1 :(得分:-1)

正如@ 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);
}