我正在使用wicket开发搜索功能。 DropDownChoice
类用于选择要搜索的搜索项的哪个字段。如何实现这一点,以便直接从搜索的类中获取下拉名称。
假设我有一个包含变量FooBar
和foo
的课程bar
。如果我想选择哪一个是选择标准字段,我如何从资源文件中获取命名,在我的资源文件中给出值,如
FooBar.foo="Search for foo"
FooBar.bar="Search for bar"
资源文件应该是这样的,但是如何在java类端连接它?
答案 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中,您可以获得模型对象。
我希望它会有所帮助。