我正在尝试创建一个简单的CRUD表单,使用Hibernate将数据插入数据库,而不知道对象类型是什么。最终目标是只有一个插入表单,用于数据库中的每个表。到目前为止,我获取当前对象具有的方法,检查是否有任何设置方法,并为每个具有设置的字段创建文本输入。
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
HtmlPanelGrid hpg = (HtmlPanelGrid) viewRoot.findComponent("panel");
for (Method method : declaredFields) {
String name = method.getName();
if (name.contains("set")) {
HtmlOutputText hot = new HtmlOutputText();
HtmlInputText hit = new HtmlInputText();
hot.setValue(name.substring(3));
try {
hit.setValue(newObject.getClass().getMethod(name, String.class));
} catch (Exception ex) {
Logger.getLogger(ReflectController.class.getName()).log(Level.SEVERE, null, ex);
}
hpg.getChildren().add(hot);
hpg.getChildren().add(hit);
}
}
在这里,newObject 是稍后使用 Hibernate 要插入到数据库中的对象。我的问题是:
我应该如何将该对象的某个字段分配给当前创建的文本输入框。到目前为止,如果我像上面所做的那样将方法放在值中,它只会在该输入框的值属性中打印出该方法。我想要的是,在提交该表单时,将该文本框中的值分配给该名称的属性。