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 が作成されることに気付きました。

ManagedBean コード:

@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 に答える