Java 通过struts属性标记在JSP页面上打印多个值

Java 通过struts属性标记在JSP页面上打印多个值,java,jsp,struts2,Java,Jsp,Struts2,我试图通过s:property标记将从database in action类接收到的各种值打印到JSP页面。但是,它只显示一个值 行动类: ResultSet r = st.executeQuery("select unique(emailid) from pagequery"); while (r.next()) { uniquemail=r.getString(1); } JSP页面: JSP页面应该显示所有

我试图通过s:property标记将从database in action类接收到的各种值打印到JSP页面。但是,它只显示一个值

行动类:

            ResultSet r = st.executeQuery("select unique(emailid) from pagequery");

            while (r.next()) {
                uniquemail=r.getString(1);
}
JSP页面: JSP页面应该显示所有唯一的电子邮件id。但它只显示了第一个

<td>
<s:property value="uniquemail"/>
</td>
如果uniquemail是一个数组,您必须像这样迭代它

<s:iterator value="uniquemail">
    <s:property/>
</s:iterator>
这里

您在每次迭代中都使用新值覆盖单个变量。您需要使用列表或数组,并向其中添加新元素,否则将始终只存储最后一次迭代的值

公共类YourAction exteds ActionSupport{ 私有列表邮件=新的ArrayList; /*在这里放置邮件的Getter和Setter*/ 公共字符串执行{ /*…这里还有其他东西…*/ ResultSet r=st.ExecuteQuery从pagequery中选择uniqueemailid; 而r{ mails.addr.getString1; } 回归成功; } } 然后在JSP中使用迭代器呈现集合

邮件:
而r{uniquemail=r.getString1;这对您来说似乎是正确的方法吗?您在每次迭代中都用新值覆盖一个简单变量。使用列表或数组,并向其添加新元素,否则您将始终只存储最后一次迭代的值。然后在JSP中使用迭代器来呈现您的集合。仍然是一个业余爱好者。我可以吗像ArrayJava.sql.Arrayuniquemail=r.getString1;?我创建了上面的getter和setter。使用List或String[]。这本书中有很多关于如何从新开始的好例子,我建议你在接触新事物之前,至少要抽出几分钟来检查是否有这样的例子、最佳实践或常见方法。这将节省你的时间、你的头痛,还有你的工作:如果你能给我答案中的完整代码很好。控制台正在显示多个值。但是,它仍然没有显示多个值。是否可以将它们排列在表中的不同行中?当然可以…只需放置而不是标记,如果我想将此属性的值发送到另一个类,即另一个Action类。它不支持name属性。s:hidden+用于发送只读值的s:属性,或s:textfield、s:textarea、s:file等。。。
while (r.next()) { 
    uniquemail=r.getString(1);