【发布时间】:2016-12-02 05:46:49
【问题描述】:
我正在开发 XPage。
我有一个用于 ContractsBean 的 managedBean。在 ContractsBean 中,我有一个方法 saveContract()。
在 XPage 上,我还有一个数据源绑定到另一个 NSF 中的文档,它的变量是标准的 #{document1}。
部分页面数据来自 NSF 文件,而页面的其他部分来自 DB2。
我正在使用 保存页面,一些数据进入 NSF,其他数据进入 DB2。我首先与 NSF 合作,并使用 document1 成功保存了数据。
然后我添加了一个 ActionListener 来调用事件侦听器,但事件侦听器没有触发。我删除了保存 document1 并且 ActionListener 正常触发。
我不能在同一个事件处理程序中同时拥有 xp:this.action 和 actionListeners 吗?
任何 JSF 大师,这可能看起来很熟悉......
<xp:button value="Submit" id="btnSubmit"
styleClass="btn green pull-left">
<xp:eventHandler event="onclick" submit="true"
refreshMode="norefresh" immediate="true">
<xp:this.action>
<xp:saveDocument var="document1"></xp:saveDocument>
</xp:this.action>
<xp:this.actionListeners>
<xp:actionListener
type="com.page.listeners.SaveContractListener">
</xp:actionListener>
</xp:this.actionListeners>
</xp:eventHandler>
</xp:button>
现在,如果我这样做,删除 xp.this.action 它可以工作,动作监听器会触发。
<xp:button value="Submit" id="btnSubmit"
styleClass="btn green pull-left">
<xp:eventHandler event="onclick" submit="true"
refreshMode="norefresh" immediate="true">
<xp:this.actionListeners>
<xp:actionListener
type="com.page.listeners.SaveContractListener">
</xp:actionListener>
</xp:this.actionListeners>
</xp:eventHandler>
</xp:button>
如果我不能在 EventHandler 中同时拥有两者,那么使用 ActionListener 获取 document1 的句柄(如何?)并将其保存在我的 actionListener 中的替代方法是什么?
【问题讨论】:
-
您是否仅通过在设计器中“单击”来获得该来源?在这种情况下,它可能是一个设计器错误。否则(自己编写 xml 标记),您的代码无法正确转换为模型/html 输出。
-
我使用了 domino Designer 来配置它。你是说,它不应该让我这样做吗?它不会抱怨构建。
-
不,我是说您可以按照编译的方式键入 source,但不能按预期工作。另一方面,有时 Designer UI 可能会以这种方式生成源代码。我只是好奇而已。似乎您使它与添加的操作组一起使用。那是上述案例中的第二个:-)
标签: jsf xpages actionlistener