2015-05-08 3 views
0

Я использую прайс-листы 5.0 на wildfly 8.2.0 (mojarra 2.2.8).Прямолинейные данные и ViewScoped

Я пытался использовать простой primefaces DataTable с расширением, но каждый раз, когда я расширяю ряд, моя поддержка боб @PostConstruct запускается (которая перезагружает данные, которые сводят на нет использования @ViewScoped в первую очередь).

Я видел другие вопросы по StackOverflow об этой проблеме, но никакого решения не работал для меня:

  • Я использую JSF 2.2 +
  • Я не использую любые JSTL теги
  • I инвалидов частичное сохранение состояния в web.xml
  • Я попытался с помощью другого @ViewScoped (фасоль, вид и даже omnifaces'one)

Мой боб:

@Named 
@javax.faces.view.ViewScoped 
@SuppressWarnings("serial") 
public class TestBean implements Serializable { 

    private List<String> things; 

    @PostConstruct 
    public void initialize() { 
     System.out.println("initializing..."); 
     this.things = Arrays.asList("michael", "david", "paul"); 
    } 

    public List<String> getThings() { 
     return this.things; 
    } 
} 

Мой шаблон:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:f="http://xmlns.jcp.org/jsf/core" 
     xmlns:p="http://primefaces.org/ui"> 
    <h:head> 
     <title>Test</title> 
    </h:head> 
    <h:body> 
     <p:dataTable value="#{testBean.things}" var="thing"> 
      <p:column> 
       <p:rowToggler /> 
      </p:column> 
      <p:column> 
       <h:outputText value="#{thing}" /> 
      </p:column> 
      <p:rowExpansion> 
       <h:outputText value="#{thing}" /> 
      </p:rowExpansion> 
     </p:dataTable> 
    </h:body> 
</html> 
+0

Пробовал использовать '@ ManagedBean' вместо этого? –

+0

Я попытался использовать '@ ManagedBean' в сочетании с каждым' @ ViewScoped', никакая комбинация не решила проблему –

ответ

0

Для работы <p:dataTable> должен быть внутри <h:form>.

Смежные вопросы