0

次の問題があります!

私のサイトの1つにボタンがあります:

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

Bean の一部で呼び出すメソッド:

@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>

これがビーンです:

@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;
    }

したがって、この管理プロパティを使用しようとすると、次のように表示されます。

式 #{SelectionBean.analyzerLog} ビューによって参照されるオブジェクトのスコープは、セッションの参照マネージド Bean (AnalyzerBean) スコープよりも短いですが、ご覧のとおり、両方ともセッション スコープです。何が問題なのですか?

4

1 に答える 1