我正在研究XPage。
我有一个适用于ContractsBean的managedBean。在ContractsBean中,我有一个方法saveContract()。
在XPage上我还有一个数据源绑定到另一个NSF中的文档,它的变量是标准的#{document1}。
部分页面数据来自NSF文件以及来自DB2的页面的其他部分。
我正在努力保存页面,一些数据发送到NSF,另一些发送到DB2。我首先使用NSF,并使用document1成功保存数据。
然后我添加了一个ActionListener来调用事件监听器,并且事件监听器没有触发。我删除了save 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中的替代方法是什么?
答案 0 :(得分:3)
我使用此标记使其工作
<xp:button value="Submit" id="btnSubmit"
styleClass="btn green pull-left">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete" disableValidators="true" immediate="true">
<xp:this.action>
<xp:actionGroup>
<xp:saveDocument var="document1"></xp:saveDocument>
</xp:actionGroup>
</xp:this.action>
<xp:this.actionListeners>
<xp:actionListener
type="com.page.SaveContractListener">
</xp:actionListener>
</xp:this.actionListeners></xp:eventHandler>
</xp:button>