2012-03-12 14 views
1

トピックに関連する質問がありましたが、満足のいく答えが見つかりませんでした。私のJSPコードで助けてください。内部変数から最終変数 "out"を参照する方法は?

<% 
     AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); 
     Future<Integer> f = asyncHttpClient.prepareGet("http://www.ning.com/") 
      .execute(new AsyncCompletionHandler<Integer>(){ 

     public STATE onStatusReceived(HttpResponseStatus respstat)throws Exception{ 
        ***//error occurs in next line*** 
      out.println(respstat.getStatusText()); 
      return STATE.CONTINUE; 
     } 
     @Override 
     public Integer onCompleted(Response response) throws Exception{ 
      // Do something with the Response 
      out.println(response.getStatusCode()); 
      return response.getStatusCode(); 
     } 

     @Override 
     public void onThrowable(Throwable t){ 
      // Something wrong happened. 
     } 
    }); 
    %> 

outはjsp変数ですから、最終として定義することはできません。この場合、私は何をしますか?

おかげ

答えて

4
<% 
     final ServletOutputStream finalOut = out; // create final reference 

     AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); 
     Future<Integer> f = asyncHttpClient.prepareGet("http://www.ning.com/") 
      .execute(new AsyncCompletionHandler<Integer>(){ 

     public STATE onStatusReceived(HttpResponseStatus respstat)throws Exception{ 
        ***//error occurs in next line*** 
      finalOut.println(respstat.getStatusText()); //use final reference 
      return STATE.CONTINUE; 
     } 
     @Override 
     public Integer onCompleted(Response response) throws Exception{ 
      // Do something with the Response 
      out.println(response.getStatusCode()); 
      return response.getStatusCode(); 
     } 

     @Override 
     public void onThrowable(Throwable t){ 
      // Something wrong happened. 
     } 
    }); 
    %> 
関連する問題