我需要创建一个下拉菜单,我需要显示5个来自数据库的帐号。我打算做的是,将这5个帐号设置为数组列表,然后列表将保存在会话常量中。这个常量需要从我的JSP中获取。
在我的动作类中 -
HttpSession session = request.getSession();
ArrayList accts = new ArrayList();
String acct1 = data.getAccountId1();
String acct2 = data.getAccountId2();
accts.add(acct1);
accts.add(acct2);
session.setAttribute(
WorkConstants.TEST1,
accts);
TEST1被定义为公共字符串,如下所示:
public String TEST1 = "Test1";
在我的jsp中,我这样编码。
<td valign="top">
1. accounts<span class="bodyCopy"><font color="#ff0000"> * </font></span>:
<br/>
<html:select name="MyDataForm" property="accountNumber"
styleClass="formContent">
<html:options collection="<%= WorkConstants.TEST1 %>"
property="value" labelProperty="label" styleClass="formContent"/>
</html:select>
<br/>
</td>
但这不起作用。 获取错误 - 没有可用于名称为Test1 的bean的属性值的getter方法。看起来我的数组值没有设置到TEST1中。 为什么?
答案 0 :(得分:3)
使用Strut的acct1
包裹acct2
和LabelValueBean
,如下所示: -
ArrayList accts = new ArrayList();
String acct1 = data.getAccountId1();
String acct2 = data.getAccountId2();
accts.add(new LabelValueBean(acct1, acct1));
accts.add(new LabelValueBean(acct2, acct2));
session.setAttribute(WorkConstants.TEST1,accts);