2012-02-01 5 views
0

Я пытаюсь использовать реализацию CDI Weld, на JBoss AS 7 и в приложении JSF 2. 0.Weld + JSF 2.0 @ConversationScoped не поддерживает состояние

Дело в том, что мой @ConversationSconed @Named bean, похоже, не сохраняет свое состояние, когда я начинаю разговор.

В ordre, чтобы увидеть это, я просто использую счетчик, который я увеличиваю каждый раз, когда нажимаю на кнопку команды, используя Primefaces и ajax.

Beans.xml присутствует в пути к классам (META-INF, WEB-INF ...), и я просто хочу уточнить это с помощью компонента @SessionScoped или @ManagedBean @ViewScoped, он работает очень хорошо!

Но я предпочитаю использовать @ConversationScoped и оставаться с @Named bean, вместо использования @ManagedBean.

Может быть, я должен сделать Additionaly конфигурацию JBoss AS 7 или в web.xml, я не знаю ...

Вот мой @ConversationScoped боб:

@Named 
@ConversationScoped 
public class ConversationTest implements Serializable { 
    private int counter; 

    @Inject 
    private Conversation conversation; 

    public void startConversation() { 
     System.out.println(counter); 

     counter++; 

     if(conversation.isTransient()) 
      conversation.begin(); 
    } 

    public void stopConversation() { 
     if (!conversation.isTransient()) 
      conversation.end(); 
    } 

    public int getCounter() { 
     return counter; 
    } 

    public void setCounter(int counter) { 
     this.counter = counter; 
    } 
} 

И здесь является содержанием моей страницы xhtml:

<h:form prependId="false"> 
     <h:panelGroup id="tests"> 
      <h:outputText value="#{conversationTest.counter}" /> <br/> 
      <h:outputText value="Test : #{conversationTest.testHello}" /> <br/><br/> 
     </h:panelGroup> 

     <p:commandButton 
       value="Start !" 
       actionListener="#{conversationTest.startConversation}" 
       update="tests" /> 
     <br/> 

     <p:commandButton 
       value="Stop !" 
       actionListener="#{conversationTest.stopConversation}" 
       update="tests" /> 
    </h:form> 

Что я делаю неправильно? Я что-то забыл?

Большое спасибо за ваши ответы!

+0

Я не уверен, что вы подразумеваете под «не удерживает состояние»? Каков результат, которого вы ожидаете и что происходит? –

+0

Когда я нажимаю кнопку, я уверен, что число chatTest.counter увеличивается, но это не так. – Zarkus13

ответ

0

Вы пытались использовать стандартный h: commandButton вместо разновидности PrimeFaces? Если PrimeFaces использует AJAX (который, как я помню, это так), вам может потребоваться отправить идентификатор беседы в качестве параметра.

+0

Спасибо за ваш ответ! Я попытаюсь использовать h: commandButton и дам вам знать о результате;) – Zarkus13