Java 通过struts属性标记在JSP页面上打印多个值
我试图通过s:property标记将从database in action类接收到的各种值打印到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页面应该显示所有
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);