Временный разговор, заканчивающийся сомнением - PullRequest
1 голос
/ 27 ноября 2009

Я недавно работал с Seam, и временные разговоры все еще смущают меня.

В нашем проекте мы используем ExternalContext.redirect(), чтобы перенаправить пользователя на страницу ответа. Из того, что я прочитал, разговор о Seam заканчивается, когда вызывается фаза ответа рендеринга.

Но потом я прочитал где-то еще: Шов прозрачно распространяет контекст разговора (включая временный контекст разговора) по обратным передачам JSF и перенаправляет .

Итак, что происходит, когда я перенаправляю на одну и ту же страницу, так это то, что у commandLinks всегда один и тот же разговор-ID, добавляемый к его URL-адресу действия. Я попытался завершить временную беседу с помощью <f:param name="conversationPropagation" value="none"/>, как говорится на странице, но это приводит к тому, что при отображении перенаправленной страницы контекст беседы уже fred и bean-компонент, который мы используем, больше не может использоваться в ответ.

Итак, что я хочу знать, так это то, что если есть способ завершить беседу перенаправлением и поддерживать контекст до передачи ответа?

Если нет, то когда временная беседа действительно заканчивается? Потому что, поскольку контекст разговора распространяется через перенаправления и обратные передачи, он кажется мне, что никогда не закончится.

1 Ответ

0 голосов
/ 07 октября 2011

Я имею в виду, что область действия CONVERSATION - это автоматическое ведение пользовательского интерфейса рабочей рамки SEAM, если вы хотите создать новый диалог, вы можете сделать это следующим образом.

<h:commandButton id="conId" value="New Conversation" 
    action="#{conversationManager.clearConversation('/views/Hello.seam')}">  
</h:commandButton>

Я не уверен, но если вы хотите закрыть разговор, то вы можете попробовать вот так.

getConversation().end();

Я не уверен, сработает или нет.

...