function notify() {
var json = {
'sessionId': "#{session.id}",
'cartToken': "#{socketTokenBean.token}"
};
notifyAll(JSON.stringify(json)); // Push "json" to a WebSocket channel.
}
<p:inputText value="#{bean.value}" .../>
<p:commandButton value="Submit" oncomplete="notify()" process="@this" update="..." .../>
可能有另一个组件,例如<p:selectOneMenu>
代替<p:inputText>
。将其视为在购物篮中保存数量值的输入组件。 bean
是一个会话范围的托管bean,其中包含购物篮中的项目列表。
oncomplete
的{{1}}处理程序调用JavaScript函数,该函数将JSON消息推送到WebSocket通道。显然,如果在<p:commandButton>
中没有任何更改,将JSON消息推送到WebSocket通道是没有价值的 - 它将不必要地向关联的客户端发送通知,从而带来不必要的处理能力。
是否有办法在此<p:inputText>
调用notify()
函数,只有在给定oncomplete="notify()"
保留的值已更改的情况下?