我想使用Managed Bean来读/写单个Notes文档。 Notes文档驻留在Notes视图中,视图中只有1个Notes文档。
我应该如何设置Managed Bean?我应该如何从XPage设计元素中调用此Managed Bean?我想阅读&通过Managed Bean将数据从XPage写入Notes文档。
我假设我将提供一个类似于表单的UI,其中包含一个用于启动提交操作的按钮。
任何人都可以提供一个简单的例子,或者我在哪里可以找到这样的例子?
我提前非常感谢你的帮助!
答案 0 :(得分:1)
如果您希望能够通过添加按钮向bean添加新配置,或者如果您只是方便为所有配置属性编写getter和setter,则可以实现DataObject并迭代所有documentItems以进行写入他们到你的豆子:
public class ConfigBean implements DataObject {
private static HashMap<Object,Object> config = null;
public ConfigBean() throws NotesException, IOException, ClassNotFoundException{
config = new java.util.HashMap<Object,Object>();
readFromDocument();
}
public void readFromDocument() throws NotesException, IOException, ClassNotFoundException{
Database db = ExtLibUtil.getCurrentSession().getCurrentDatabase();
View view = db.getView("Config");
Document doc = view.getFirstDocument();
//read all Items from document
Iterator<Item> items = doc.getItems().iterator();
while(items.hasNext()){
Item item = items.next();
setValue(item.getName(), item.getValueCustomData());
}
doc.recycle();
view.recycle();
db.recycle();
}
public void saveToDocument(){
//.. write the HashMap back to your document.
}
public Class<ConfigBean> getType(Object id) {
return ConfigBean.class;
}
public Object getValue(final Object key) {
if (key == null) {
throw new IllegalArgumentException("Key cannot be null.");
}
return config.get(key);
}
public boolean isReadOnly(Object arg0) {
return false;
}
public void setValue(final Object key, final Object value) {
if (key == null) {
throw new IllegalArgumentException("Key cannot be null.");
}
config.put(key.toString(), value);
}
}
抱歉无法发布代码......
要将bean保存回文档,您必须添加一个循环遍历HashMap的方法,并将值写回文档。您可以在xpage上的配置表单中的保存按钮中调用此方法。
要通过xpage操作bean的值,你只需调用ConfigBean.key =“value”,ConfigBean.setValue(“key”,“value”)或者只是将它们绑定到输入字段:
[1]:How to set up a managed bean to work with Notes document