1

我正在尝试使用 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。

托管豆代码:

@Named("carrinho")

@ConversationScoped
public class CCarrinho implements Serializable
{
.
.
.
 @Inject
    private Conversation conversation;
.
.
.
 @PostConstruct
    public void inicializar()
    {
    if (getConversation().isTransient())
    {
      getConversation().begin();

    }
    }

谢谢。再见!

4

1 回答 1

1

当前对话的 id 保存在当前视图中,当您执行回发(ajax 请求也是回发)时,对话 id 就在那里,因此您无需提供它。

于 2013-01-07T19:44:38.007 回答