我正在尝试使用CDI会话范围,我有些疑惑: - 使用ajax请求时是否需要传播cdi id?
例如:
<p:spinner value='#' min="1" max="99" styleClass="spinerqtde" title="Quantidade" stepFactor="1" maxlength="2">
<f:param name="cid" value="#{carrinho.conversation.id}"></f:param>
<p:ajax update="@form" listener='#{carrinho.lstSpinerProduto}' process="@this" />
</p:spinner>
因为当我没有时,我意识到方法“@postConstruct”再次初始化,并创建了一个新的CID。
ManagedBean代码:
@Named("carrinho")
@ConversationScoped
public class CCarrinho implements Serializable
{
.
.
.
@Inject
private Conversation conversation;
.
.
.
@PostConstruct
public void inicializar()
{
if (getConversation().isTransient())
{
getConversation().begin();
}
}
感谢。 再见!
答案 0 :(得分:1)
当前对话的ID保留在当前视图中,当您执行回发(ajax请求也是回发)时,对话ID就在那里,因此您无需提供它。