功能继续从重复控制中删除文档

时间:2017-04-21 07:20:20

标签: java xpages

我有一个带有条目列表的xp:repeat控件。对于每个条目,我都定义了一个按钮,用于从数据库中删除后端文档:

<xp:button value="Delete" id="button2">
    <i class="fa fa-trash">&#160;</i>
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        <xp:this.action>
            <![CDATA[#{javascript:employeeBean.remove(obj.unid)}]]>
        </xp:this.action>
    </xp:eventHandler>
</xp:button>

虽然我注意到一个奇怪的行为,但这种方法很好:当我刷新页面(浏览器中的F5)时,我收到一条消息:确认表单重新提交。如果我选择确认,则从列表中删除另一个条目。

只要按F5并刷新页面,此过程就会继续。我怎么能阻止这个?

删除方法不是火箭科学:

public void remove(String id) {
    try {
        Document doc;
        openDatabaseAndView();
        if (id != null) {
            doc = view.getDocumentByKey(id, true);
        } else {
            doc = null;
        }
        if (doc != null) {
            doc.remove(true);
        } else {
              //message to user
        }
        closeDatabaseAndView();
    } catch (NotesException e) {
        e.printStackTrace();
    }
}

2 个答案:

答案 0 :(得分:0)

我将重复控件放在面板中,并从“删除”按钮...

在此面板上设置部分刷新

答案 1 :(得分:0)

带有表单重新提示的F5实际上重复了再次执行按钮点击的最后一个请求(删除),并再次...

看看“POST / GET”模式:https://stackoverflow.com/a/18821569/206265