我试图通过s:property标签将从动作类中的数据库接收的各种值打印到JSP页面。但它只显示一个值。
行动类:
ResultSet r = st.executeQuery("select unique(emailid) from pagequery");
while (r.next()) {
uniquemail=r.getString(1);
}
JSP PAGE: JSP页面应显示所有唯一的电子邮件ID。但它只显示第一个。
<td>
<s:property value="uniquemail"/>
</td>
答案 0 :(得分:0)
如果uniquemail
是一个数组,你必须像这样迭代它
<s:iterator value="uniquemail">
<s:property/>
</s:iterator>
答案 1 :(得分:0)
下面
while (r.next()) { uniquemail=r.getString(1);
您在每次迭代时使用新值覆盖单个变量。您需要使用List或数组,并向其添加新元素,否则您将始终只存储最后一个迭代值。
public class YourAction exteds ActionSupport{
private List<String> mails = new ArrayList<String>();
/* put Getter and Setter for mails here */
public String execute(){
/* ... other stuff here ... */
ResultSet r = st.executeQuery("select unique(emailid) from pagequery");
while (r.next()) {
mails.add(r.getString(1));
}
return SUCCESS;
}
}
然后在JSP中使用迭代器来渲染您的集合。
Mails:
<ul>
<s:iterator value="mails">
<li><s:property/></li>
</s:iterator>
</ul>