1

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

假设我有一个FooBar包含变量的类foobar. 如果我想选择哪一个是选择条件字段,我如何从资源文件中获取命名,在我的资源文件中给出值,例如

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

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

4

1 回答 1

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 中,您可以获得模型对象。

我希望它会有所帮助。

于 2012-06-21T14:51:15.957 回答