Wicket:从类变量名中获取DropDownChoice列表项名称

时间:2012-06-08 08:06:06

标签: java wicket

我正在使用wicket开发搜索功能。 DropDownChoice类用于选择要搜索的搜索项的哪个字段。如何实现这一点,以便直接从搜索的类中获取下拉名称。

假设我有一个包含变量FooBarfoo的课程bar。如果我想选择哪一个是选择标准字段,我如何从资源文件中获取命名,在我的资源文件中给出值,如

   FooBar.foo="Search for foo"
   FooBar.bar="Search for bar"

资源文件应该是这样的,但是如何在java类端连接它?

1 个答案:

答案 0 :(得分:1)

首先,您可以像这样获取字段及其值

import java.lang.reflect.Field;

public class FooBar extends AbstractFooBar{
public String foo = "Search for foo";
public String bar = "Search for bar";

public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
    Field[] fields = FooBar.class.getFields();
    // Field[] fields = AbstractFooBar.class.getFields();
    for (Field field : fields) {
        System.out.println(field.get(new Object()).toString());
    }
}

} 但正如你猜测你不能使用任何抽象。此外,您的所有字段都必须公开。

您可以使用资源文件初始化您的课程。在使用反射获取字段后,您可以使用IChoiceRenderer将字段传递给DropDownChoice。

您的DropDownChoice类型可以是Field,您可以通过提供字段列表来初始化它。然后在IChoiceRenderer中,您可以获得模型对象。

我希望它会有所帮助。