2013-07-02 6 views
0

У меня есть следующая проблема!Управляемое свойство между SessionScoped ManagedBeans

На одном из моих сайтов я есть кнопка:

<h:commandButton value="IDA Analyzer Results" action="#{SelectionBean.monitoringLog()}"/> 

метод вызывается с некоторой частью компонента:

@ManagedBean(name = "SelectionBean") 
@SessionScoped 
public class TableSelectionBean { 


private List<String> analyzerLog = new ArrayList<String>(); 


public String monitoringLog() throws FileNotFoundException, IOException{ 

String fileName = "/opt/IDA2/Linux/bin/"+"filtered_"+selectionMonitoringData.get(0).getMonitoringName()+"_result.txt"; 
if(selectionMonitoringData.get(0).getIsExecuted()) 
{ 
    BufferedReader br = new BufferedReader(new FileReader(fileName)); 
    try { 
     String line; 
     while ((line=br.readLine()) != null) { 
       getAnalyzerLog().add(line); 

     } 

    } finally { 
     br.close(); 
     System.out.println(getAnalyzerLog()); 
    } 
} 
return "analyzerresult.xhtml"; 
} 

После нажатия на эту кнопку, как вы можете видеть, что это переходит мне на другой странице:

<h:body> 
    <h:form>  
      <h:commandButton value="hi" action="#{AnalyzerBean.myMethod()}"></h:commandButton>  
    </h:form> 
</h:body> 

Вот Bean:

@ManagedBean(name = "AnalyzerBean") 
@SessionScoped 
public class AnalyzerResultBean { 

@ManagedProperty(value="#{SelectionBean.analyzerLog}") 
private List<String> analyzerLog; 


public void myMethod(){ 
    System.out.print(analyzerLog); 
} 
    /** 
    * @return the analyzerLog 
    */ 
    public List<String> getAnalyzerLog() { 
     return analyzerLog; 
    } 

    /** 
    * @param analyzerLog the analyzerLog to set 
    */ 
    public void setAnalyzerLog(List<String> analyzerLog) { 
     this.analyzerLog = analyzerLog; 
    } 

Так что, когда я пытаюсь использовать это свойство Managed он говорит:

Область объекта, на который ссылается выражение # {SelectionBean.analyzerLog}, вид, короче ссылающихся управляемых компонентов (AnalyzerBean), но как вы можете видеть, что оба являются областями сеанса. В чем может быть проблема?

ответ

0

Если вы используете JSF 2.x, и вы хотите перейти analyzerresult.xhtml страницу возврата analyzerresult

public String monitoringLog() throws FileNotFoundException, IOException{ 
    return "analyzerresult"; 
} 

.xhtml расширение не требуется.

+0

Да, но это не проблема –

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