2013-07-24 7 views
3

Я пытаюсь использовать simple demo с страницы richfaces progressBar.JSF1.2 - richFaces progressBar - простая демонстрация не работает

Когда я перехожу на страницу, она отображает кнопку запуска, после нажатия кнопки отображается индикатор прогресса, показывающий 0% - и вместо подсчета до 100 отображается -1, и вот оно - нет счета, ничего.
Значит, это означает, что startTime - null - но обычно он должен иметь время нажатия кнопки.

Я также пробовал с @AutoCreate, а также с @out за 3 переменных ... Это не очень хорошо работает ..

Система работает на JSF 1.2 и пластах.

XHTML выглядит следующим образом:

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:a4j="http://richfaces.org/a4j" 
xmlns:rich="http://richfaces.org/rich"> 

<h:form> 
    <a4j:outputPanel id="progressPanel"> 
     <rich:progressBar value="#{progressBarBean.currentValue}" 
      interval="2000" label="#{progressBarBean.currentValue} %" 
      enabled="#{progressBarBean.enabled}" minValue="-1" maxValue="100" 
      reRenderAfterComplete="progressPanel"> 
      <f:facet name="initial"> 
       <br /> 
       <h:outputText value="Process doesn't started yet" /> 
       <a4j:commandButton action="#{progressBarBean.startProcess}" 
        value="Start Process" reRender="progressPanel" 
        rendered="#{progressBarBean.buttonRendered}" 
        style="margin: 9px 0px 5px;" /> 
      </f:facet> 
      <f:facet name="complete"> 
       <br /> 
       <h:outputText value="Process Done" /> 
       <a4j:commandButton action="#{progressBarBean.startProcess}" 
        value="Restart Process" reRender="progressPanel" 
        rendered="#{progressBarBean.buttonRendered}" 
        style="margin: 9px 0px 5px;" /> 
      </f:facet> 
     </rich:progressBar> 
    </a4j:outputPanel> 
</h:form> 

боб выглядит следующим образом:

/** 
* 
*/ 
package org.richfaces.demo.progressBar; 

import java.util.Date; 

/** 
* @author Ilya Shaikovsky 
* 
*/ 
@Name("progressBarBean") 
public class ProgressBarBean { 

private boolean buttonRendered = true; 
private boolean enabled=false; 
private Long startTime; 

public ProgressBarBean() { 
} 

public String startProcess() { 
    setEnabled(true); 
    setButtonRendered(false); 
    setStartTime(new Date().getTime()); 
    return null; 
} 

public Long getCurrentValue(){ 
    if (isEnabled()){ 
     Long current = (new Date().getTime() - startTime)/1000; 
     if (current>100){ 
      setButtonRendered(true); 
     }else if (current.equals(0)){ 
      return new Long(1); 
     } 
     return (new Date().getTime() - startTime)/1000; 
    } if (startTime == null) { 
     return Long.valueOf(-1); 
    } 
    else 
     return Long.valueOf(101); 
} 

public boolean isEnabled() { 
    return enabled; 
} 

public void setEnabled(boolean enabled) { 
    this.enabled = enabled; 
} 

public Long getStartTime() { 
    return startTime; 
} 

public void setStartTime(Long startTime) { 
    this.startTime = startTime; 
} 

public boolean isButtonRendered() { 
    return buttonRendered; 
} 

public void setButtonRendered(boolean buttonRendered) { 
    this.buttonRendered = buttonRendered; 
} 
} 

Спасибо!

ответ

1

Попробуйте добавить @Scope(ScopeType.SESSION) или @Scope(ScopeType.PAGE) к вашему bean-компоненту и посмотреть, может ли это работать.

+0

Я уверен, что я пробовал это уже раньше, без успеха, на этот раз это сработало ... странно, но спасибо! – Joerg

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

  • Нет связанных вопросов^_^