html:options collection - 没有可用于属性值的getter方法

时间:2011-02-11 18:31:50

标签: java jsp struts

我需要创建一个下拉菜单,我需要显示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中。 为什么?

1 个答案:

答案 0 :(得分:3)

使用Strut的acct1包裹acct2LabelValueBean,如下所示: -

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);