如何使用托管bean读取/写入(配置)Notes文档的示例?

时间:2014-04-15 11:41:49

标签: java xpages

我想使用Managed Bean来读/写单个Notes文档。 Notes文档驻留在Notes视图中,视图中只有1个Notes文档。

我应该如何设置Managed Bean?我应该如何从XPage设计元素中调用此Managed Bean?我想阅读&通过Managed Bean将数据从XPage写入Notes文档。

我假设我将提供一个类似于表单的UI,其中包含一个用于启动提交操作的按钮。

任何人都可以提供一个简单的例子,或者我在哪里可以找到这样的例子?

我提前非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

正如克努特赫尔曼已经在评论中提到的那样检查了他的[例子] [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