通过 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);
我有一个列表,其中包含要通过邮件发送的值。但是在邮件中我只得到最后一个值,而不是所有值。下面是我的代码
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);