У меня есть следующая проблема!Управляемое свойство между 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), но как вы можете видеть, что оба являются областями сеанса. В чем может быть проблема?
Да, но это не проблема –